summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Andreas Gampe <agampe@google.com> 2017-10-11 12:04:35 -0700
committer Andreas Gampe <agampe@google.com> 2017-10-11 12:07:09 -0700
commit454853420aa32e442713eb76b7399d183c5d4e5c (patch)
tree7633796855597f30be8163b12eb70686d7435cdc
parentf35bb20d7dab15c771f5237bb79ca2b7a6afa8a0 (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.cc2
-rw-r--r--runtime/java_vm_ext_test.cc13
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);
}