From ff0184c6afa5d8faab4f1d76a85b7dd7829754e7 Mon Sep 17 00:00:00 2001 From: Nicolas Geoffray Date: Fri, 24 Jan 2025 09:43:20 +0000 Subject: Don't use WellKnownClasses in ReferenceProcessor's GetSlowPathFlagOffset. It may not be initialized at the point the reference processor is running. Test: test.py Change-Id: I21adb9aea1d99b2512d424a6a9982546fef08f06 --- runtime/gc/reference_processor.cc | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) (limited to 'runtime/gc/reference_processor.cc') diff --git a/runtime/gc/reference_processor.cc b/runtime/gc/reference_processor.cc index 2621629bb8..6420fbbff6 100644 --- a/runtime/gc/reference_processor.cc +++ b/runtime/gc/reference_processor.cc @@ -54,8 +54,11 @@ ReferenceProcessor::ReferenceProcessor() static inline MemberOffset GetSlowPathFlagOffset(ObjPtr reference_class) REQUIRES_SHARED(Locks::mutator_lock_) { DCHECK(reference_class == GetClassRoot()); - ArtField* field = WellKnownClasses::java_lang_ref_Reference_slowPathEnabled; + // Don't use WellKnownClasses here as it may not be initialized at the point + // we're being called. + ArtField* field = reference_class->GetField(reference_class->NumFields() - 1); DCHECK(field->IsStatic()); + DCHECK_STREQ(field->GetName(), "slowPathEnabled"); return field->GetOffset(); } -- cgit v1.2.3-59-g8ed1b