summaryrefslogtreecommitdiff
path: root/runtime/gc/reference_queue_test.cc
diff options
context:
space:
mode:
author Mathieu Chartier <mathieuc@google.com> 2015-08-28 11:16:54 -0700
committer Mathieu Chartier <mathieuc@google.com> 2015-08-28 13:31:51 -0700
commited15000a5099f5e230c8ded5ac75692bae272650 (patch)
treebe78bce04c0c9611abc221fd71d9251d05e35d2b /runtime/gc/reference_queue_test.cc
parent12b7025d0393a2ce15410df6019844e59b77314d (diff)
Fix some HandleScope bugs and add corresponding checks
Some places were creating or destroying handle scopes without holding the mutator lock. This can cause GC crashes if thread roots are being marked or hprof dumps to also fail. Also added checks to catch some of these errors. Bug: 23468617 Change-Id: I1a2d615923484cfc25014967656775c445aa3f1f
Diffstat (limited to 'runtime/gc/reference_queue_test.cc')
-rw-r--r--runtime/gc/reference_queue_test.cc4
1 files changed, 2 insertions, 2 deletions
diff --git a/runtime/gc/reference_queue_test.cc b/runtime/gc/reference_queue_test.cc
index 888c0d27ca..ab921d95f1 100644
--- a/runtime/gc/reference_queue_test.cc
+++ b/runtime/gc/reference_queue_test.cc
@@ -27,11 +27,11 @@ class ReferenceQueueTest : public CommonRuntimeTest {};
TEST_F(ReferenceQueueTest, EnqueueDequeue) {
Thread* self = Thread::Current();
+ ScopedObjectAccess soa(self);
StackHandleScope<20> hs(self);
Mutex lock("Reference queue lock");
ReferenceQueue queue(&lock);
ASSERT_TRUE(queue.IsEmpty());
- ScopedObjectAccess soa(self);
ASSERT_EQ(queue.GetLength(), 0U);
auto ref_class = hs.NewHandle(
Runtime::Current()->GetClassLinker()->FindClass(self, "Ljava/lang/ref/WeakReference;",
@@ -58,10 +58,10 @@ TEST_F(ReferenceQueueTest, EnqueueDequeue) {
TEST_F(ReferenceQueueTest, Dump) {
Thread* self = Thread::Current();
+ ScopedObjectAccess soa(self);
StackHandleScope<20> hs(self);
Mutex lock("Reference queue lock");
ReferenceQueue queue(&lock);
- ScopedObjectAccess soa(self);
queue.Dump(LOG(INFO));
auto weak_ref_class = hs.NewHandle(
Runtime::Current()->GetClassLinker()->FindClass(self, "Ljava/lang/ref/WeakReference;",