Record bytes-freed in stop-the-world compaction mode of uffd GC
This was mistakenly omitted, causing OOME.
Test: Golem
Bug: 244737154
Change-Id: I58ca89a03703c0f799a7f765516ad5679fb602f1
diff --git a/runtime/gc/collector/mark_compact.cc b/runtime/gc/collector/mark_compact.cc
index a14bfd5..a81ce42 100644
--- a/runtime/gc/collector/mark_compact.cc
+++ b/runtime/gc/collector/mark_compact.cc
@@ -1763,6 +1763,10 @@
// fallback mode
if (uffd_ == kFallbackMode) {
CompactMovingSpace</*kFallback*/true>();
+
+ int32_t freed_bytes = black_objs_slide_diff_;
+ bump_pointer_space_->RecordFree(freed_objects_, freed_bytes);
+ RecordFree(ObjectBytePair(freed_objects_, freed_bytes));
} else {
// We must start worker threads before resuming mutators to avoid deadlocks.
heap_->GetThreadPool()->StartWorkers(thread_running_gc_);