Avoid read barrier for IntArray::GetArrayClass
Changed the code use Mark instead of read barrier, this showed an
existing lock violation and possible deadlock which was fixed.
Prevent DCHECK failure from the assert.
Bug: 30469265
Test: test-art-host with CC
Change-Id: I275f953f06f6d13262043fc62eb88dca0356465a
diff --git a/runtime/mirror/array.h b/runtime/mirror/array.h
index 9a21ec2..042c340 100644
--- a/runtime/mirror/array.h
+++ b/runtime/mirror/array.h
@@ -162,9 +162,10 @@
array_class_ = GcRoot<Class>(array_class);
}
+ template <ReadBarrierOption kReadBarrierOption = kWithReadBarrier>
static Class* GetArrayClass() SHARED_REQUIRES(Locks::mutator_lock_) {
DCHECK(!array_class_.IsNull());
- return array_class_.Read();
+ return array_class_.Read<kReadBarrierOption>();
}
static void ResetArrayClass() {