ART: Fix allocation tracking
Follow-up to commit 1b35b469e0e8a70d9fd3f6c22d7e828b044c0df8.
Bug: 67044702
Test: m test-art-host
Change-Id: Ie1149c9070ba9dbf07988d4634f20012318704f0
diff --git a/runtime/java_vm_ext.cc b/runtime/java_vm_ext.cc
index a72fa54..73746e1 100644
--- a/runtime/java_vm_ext.cc
+++ b/runtime/java_vm_ext.cc
@@ -617,7 +617,7 @@
ScopedThreadSuspension sts(soa.Self(), ThreadState::kNative);
gc::AllocRecordObjectMap::SetAllocTrackingEnabled(false);
}
- allocation_tracking_enabled_ = true;
+ allocation_tracking_enabled_ = false;
}
}
}
diff --git a/runtime/java_vm_ext_test.cc b/runtime/java_vm_ext_test.cc
index 5db493b..a15ec56 100644
--- a/runtime/java_vm_ext_test.cc
+++ b/runtime/java_vm_ext_test.cc
@@ -163,6 +163,19 @@
EXPECT_FALSE(Runtime::Current()->GetHeap()->IsAllocTrackingEnabled());
+ global_refs_.clear();
+ for (size_t i = 0; i < 2000; ++i) {
+ global_refs_.push_back(env->NewGlobalRef(local_ref));
+ }
+
+ EXPECT_TRUE(Runtime::Current()->GetHeap()->IsAllocTrackingEnabled());
+
+ for (jobject global_ref : global_refs_) {
+ env->DeleteGlobalRef(global_ref);
+ }
+
+ EXPECT_FALSE(Runtime::Current()->GetHeap()->IsAllocTrackingEnabled());
+
ok = vm_->DetachCurrentThread();
EXPECT_EQ(JNI_OK, ok);
}