diff options
Diffstat (limited to 'runtime/gc/space/malloc_space.cc')
-rw-r--r-- | runtime/gc/space/malloc_space.cc | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/runtime/gc/space/malloc_space.cc b/runtime/gc/space/malloc_space.cc index 7905bb4..9bbbb3c 100644 --- a/runtime/gc/space/malloc_space.cc +++ b/runtime/gc/space/malloc_space.cc @@ -248,6 +248,16 @@ void MallocSpace::SweepCallback(size_t num_ptrs, mirror::Object** ptrs, void* ar context->freed.bytes += space->FreeList(self, num_ptrs, ptrs); } +void MallocSpace::ClampGrowthLimit() { + size_t new_capacity = Capacity(); + CHECK_LE(new_capacity, NonGrowthLimitCapacity()); + GetLiveBitmap()->SetHeapSize(new_capacity); + GetMarkBitmap()->SetHeapSize(new_capacity); + GetMemMap()->SetSize(new_capacity); + limit_ = Begin() + new_capacity; + CHECK(temp_bitmap_.get() == nullptr); +} + } // namespace space } // namespace gc } // namespace art |