summaryrefslogtreecommitdiff
path: root/runtime/well_known_classes.cc
diff options
context:
space:
mode:
author Nicolas Geoffray <ngeoffray@google.com> 2025-01-21 11:47:52 +0000
committer Nicolas Geoffray <ngeoffray@google.com> 2025-01-21 09:11:38 -0800
commitb30c5a0d84cd03ae465bda61ee41ddaec326b9d5 (patch)
tree1c099edff66d4df1c3654f0b615bec23cc72b3b2 /runtime/well_known_classes.cc
parent761ea222e35e0ffacb2149ce22a92b3c6a4bdf79 (diff)
Add new WellKnownClasses fields to avoid harcoded constants.
Test: test.py Change-Id: I3a065dd5582269792032df0c6446c3c4b6cd72be
Diffstat (limited to 'runtime/well_known_classes.cc')
-rw-r--r--runtime/well_known_classes.cc16
1 files changed, 16 insertions, 0 deletions
diff --git a/runtime/well_known_classes.cc b/runtime/well_known_classes.cc
index 8fff1ba33c..5a1e7f4264 100644
--- a/runtime/well_known_classes.cc
+++ b/runtime/well_known_classes.cc
@@ -126,7 +126,10 @@ ArtField* WellKnownClasses::dalvik_system_DexPathList_dexElements;
ArtField* WellKnownClasses::dalvik_system_DexPathList__Element_dexFile;
ArtField* WellKnownClasses::dalvik_system_VMRuntime_nonSdkApiUsageConsumer;
ArtField* WellKnownClasses::java_io_FileDescriptor_descriptor;
+ArtField* WellKnownClasses::java_lang_ref_Reference_disableIntrinsic;
+ArtField* WellKnownClasses::java_lang_ref_Reference_slowPathEnabled;
ArtField* WellKnownClasses::java_lang_ClassLoader_parent;
+ArtField* WellKnownClasses::java_lang_Object_shadowKlass;
ArtField* WellKnownClasses::java_lang_String_EMPTY;
ArtField* WellKnownClasses::java_lang_Thread_parkBlocker;
ArtField* WellKnownClasses::java_lang_Thread_daemon;
@@ -746,6 +749,16 @@ void WellKnownClasses::InitFieldsAndMethodsOnly(JNIEnv* env) {
"(I[BII)Lorg/apache/harmony/dalvik/ddmc/Chunk;",
pointer_size);
+ ObjPtr<mirror::Class> j_l_Object = GetClassRoot<mirror::Object>(class_linker);
+ java_lang_Object_shadowKlass = CacheField(
+ j_l_Object, /*is_static=*/ false, "shadow$_klass_", "Ljava/lang/Class;");
+
+ ObjPtr<mirror::Class> j_l_r_Reference = GetClassRoot<mirror::Reference>(class_linker);
+ java_lang_ref_Reference_disableIntrinsic = CacheField(
+ j_l_r_Reference, /*is_static=*/ true, "disableIntrinsic", "Z");
+ java_lang_ref_Reference_slowPathEnabled = CacheField(
+ j_l_r_Reference, /*is_static=*/ true, "slowPathEnabled", "Z");
+
dalvik_system_BaseDexClassLoader_pathList = CacheField(
d_s_bdcl.Get(), /*is_static=*/ false, "pathList", "Ldalvik/system/DexPathList;");
dalvik_system_BaseDexClassLoader_sharedLibraryLoaders = CacheField(
@@ -968,7 +981,10 @@ void WellKnownClasses::Clear() {
dalvik_system_DexPathList_dexElements = nullptr;
dalvik_system_DexPathList__Element_dexFile = nullptr;
dalvik_system_VMRuntime_nonSdkApiUsageConsumer = nullptr;
+ java_lang_ref_Reference_disableIntrinsic = nullptr;
+ java_lang_ref_Reference_slowPathEnabled = nullptr;
java_lang_ClassLoader_parent = nullptr;
+ java_lang_Object_shadowKlass = nullptr;
java_lang_String_EMPTY = nullptr;
java_lang_Thread_parkBlocker = nullptr;
java_lang_Thread_daemon = nullptr;