diff options
author | 2017-10-11 12:04:35 -0700 | |
---|---|---|
committer | 2017-10-11 12:07:09 -0700 | |
commit | 454853420aa32e442713eb76b7399d183c5d4e5c (patch) | |
tree | 7633796855597f30be8163b12eb70686d7435cdc | |
parent | f35bb20d7dab15c771f5237bb79ca2b7a6afa8a0 (diff) |
ART: Fix allocation tracking
Follow-up to commit 1b35b469e0e8a70d9fd3f6c22d7e828b044c0df8.
Bug: 67044702
Test: m test-art-host
Change-Id: Ie1149c9070ba9dbf07988d4634f20012318704f0
-rw-r--r-- | runtime/java_vm_ext.cc | 2 | ||||
-rw-r--r-- | runtime/java_vm_ext_test.cc | 13 |
2 files changed, 14 insertions, 1 deletions
diff --git a/runtime/java_vm_ext.cc b/runtime/java_vm_ext.cc index a72fa54e08..73746e18ef 100644 --- a/runtime/java_vm_ext.cc +++ b/runtime/java_vm_ext.cc @@ -617,7 +617,7 @@ void JavaVMExt::CheckGlobalRefAllocationTracking() { 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 5db493b115..a15ec56274 100644 --- a/runtime/java_vm_ext_test.cc +++ b/runtime/java_vm_ext_test.cc @@ -163,6 +163,19 @@ TEST_F(JavaVmExtStackTraceTest, TestEnableDisable) { 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); } |