Make inter-region ref bitmap pointers unique_ptr
Test: art/test/testrunner/testrunner.py --host
Bug: 112720851
Change-Id: I51f4cfe34d8bc85f6267c11aa5f7e3ccc021354f
diff --git a/runtime/gc/collector/concurrent_copying.cc b/runtime/gc/collector/concurrent_copying.cc
index e95b135..3b57b07 100644
--- a/runtime/gc/collector/concurrent_copying.cc
+++ b/runtime/gc/collector/concurrent_copying.cc
@@ -294,18 +294,18 @@
DCHECK(region_space_ != nullptr);
DCHECK(heap_->non_moving_space_ != nullptr);
// Region-space
- region_space_inter_region_bitmap_ = accounting::ContinuousSpaceBitmap::Create(
+ region_space_inter_region_bitmap_.reset(accounting::ContinuousSpaceBitmap::Create(
"region-space inter region ref bitmap",
reinterpret_cast<uint8_t*>(region_space_->Begin()),
- region_space_->Limit() - region_space_->Begin());
+ region_space_->Limit() - region_space_->Begin()));
CHECK(region_space_inter_region_bitmap_ != nullptr)
<< "Couldn't allocate region-space inter region ref bitmap";
// non-moving-space
- non_moving_space_inter_region_bitmap_ = accounting::ContinuousSpaceBitmap::Create(
+ non_moving_space_inter_region_bitmap_.reset(accounting::ContinuousSpaceBitmap::Create(
"non-moving-space inter region ref bitmap",
reinterpret_cast<uint8_t*>(heap_->non_moving_space_->Begin()),
- heap_->non_moving_space_->Limit() - heap_->non_moving_space_->Begin());
+ heap_->non_moving_space_->Limit() - heap_->non_moving_space_->Begin()));
CHECK(non_moving_space_inter_region_bitmap_ != nullptr)
<< "Couldn't allocate non-moving-space inter region ref bitmap";
}
@@ -1466,7 +1466,7 @@
ScanDirtyObject</*kNoUnEvac*/ true>(obj);
};
if (space == region_space_) {
- region_space_->ScanUnevacFromSpace(region_space_inter_region_bitmap_, visitor);
+ region_space_->ScanUnevacFromSpace(region_space_inter_region_bitmap_.get(), visitor);
} else {
DCHECK(space == heap_->non_moving_space_);
non_moving_space_inter_region_bitmap_->VisitMarkedRange(
diff --git a/runtime/gc/collector/concurrent_copying.h b/runtime/gc/collector/concurrent_copying.h
index 70d2624..a2d4837 100644
--- a/runtime/gc/collector/concurrent_copying.h
+++ b/runtime/gc/collector/concurrent_copying.h
@@ -394,8 +394,8 @@
size_t gc_count_;
// Bit is set if the corresponding object has inter-region references that
// were found during the marking phase of two-phase full-heap GC cycle.
- accounting::ContinuousSpaceBitmap* region_space_inter_region_bitmap_;
- accounting::ContinuousSpaceBitmap* non_moving_space_inter_region_bitmap_;
+ std::unique_ptr<accounting::ContinuousSpaceBitmap> region_space_inter_region_bitmap_;
+ std::unique_ptr<accounting::ContinuousSpaceBitmap> non_moving_space_inter_region_bitmap_;
// reclaimed_bytes_ratio = reclaimed_bytes/num_allocated_bytes per GC cycle
float reclaimed_bytes_ratio_sum_;