diff options
| -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); } |