summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--runtime/entrypoints/quick/quick_trampoline_entrypoints.cc8
1 files changed, 6 insertions, 2 deletions
diff --git a/runtime/entrypoints/quick/quick_trampoline_entrypoints.cc b/runtime/entrypoints/quick/quick_trampoline_entrypoints.cc
index 11c3820151..4c67bb97e0 100644
--- a/runtime/entrypoints/quick/quick_trampoline_entrypoints.cc
+++ b/runtime/entrypoints/quick/quick_trampoline_entrypoints.cc
@@ -1947,8 +1947,12 @@ class BuildGenericJniFrameVisitor final : public QuickArgumentVisitor {
if (is_static) {
// The `jclass` is a pointer to the method's declaring class.
// The declaring class must be marked.
- method->GetDeclaringClass<kWithReadBarrier>();
- sm_.AdvancePointer(method->GetDeclaringClassAddressWithoutBarrier());
+ auto* declaring_class = reinterpret_cast<mirror::CompressedReference<mirror::Class>*>(
+ method->GetDeclaringClassAddressWithoutBarrier());
+ if (kUseReadBarrier) {
+ ReadBarrierJni(declaring_class, self);
+ }
+ sm_.AdvancePointer(declaring_class);
} // else "this" reference is already handled by QuickArgumentVisitor.
}
}