1*795d594fSAndroid Build Coastguard Worker /* 2*795d594fSAndroid Build Coastguard Worker * Copyright (C) 2012 The Android Open Source Project 3*795d594fSAndroid Build Coastguard Worker * 4*795d594fSAndroid Build Coastguard Worker * Licensed under the Apache License, Version 2.0 (the "License"); 5*795d594fSAndroid Build Coastguard Worker * you may not use this file except in compliance with the License. 6*795d594fSAndroid Build Coastguard Worker * You may obtain a copy of the License at 7*795d594fSAndroid Build Coastguard Worker * 8*795d594fSAndroid Build Coastguard Worker * http://www.apache.org/licenses/LICENSE-2.0 9*795d594fSAndroid Build Coastguard Worker * 10*795d594fSAndroid Build Coastguard Worker * Unless required by applicable law or agreed to in writing, software 11*795d594fSAndroid Build Coastguard Worker * distributed under the License is distributed on an "AS IS" BASIS, 12*795d594fSAndroid Build Coastguard Worker * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13*795d594fSAndroid Build Coastguard Worker * See the License for the specific language governing permissions and 14*795d594fSAndroid Build Coastguard Worker * limitations under the License. 15*795d594fSAndroid Build Coastguard Worker */ 16*795d594fSAndroid Build Coastguard Worker 17*795d594fSAndroid Build Coastguard Worker #ifndef ART_RUNTIME_WELL_KNOWN_CLASSES_H_ 18*795d594fSAndroid Build Coastguard Worker #define ART_RUNTIME_WELL_KNOWN_CLASSES_H_ 19*795d594fSAndroid Build Coastguard Worker 20*795d594fSAndroid Build Coastguard Worker #include "base/locks.h" 21*795d594fSAndroid Build Coastguard Worker #include "base/macros.h" 22*795d594fSAndroid Build Coastguard Worker #include "jni.h" 23*795d594fSAndroid Build Coastguard Worker #include "obj_ptr.h" 24*795d594fSAndroid Build Coastguard Worker #include "read_barrier_option.h" 25*795d594fSAndroid Build Coastguard Worker 26*795d594fSAndroid Build Coastguard Worker namespace art HIDDEN { 27*795d594fSAndroid Build Coastguard Worker 28*795d594fSAndroid Build Coastguard Worker class ArtField; 29*795d594fSAndroid Build Coastguard Worker class ArtMethod; 30*795d594fSAndroid Build Coastguard Worker 31*795d594fSAndroid Build Coastguard Worker namespace mirror { 32*795d594fSAndroid Build Coastguard Worker class Class; 33*795d594fSAndroid Build Coastguard Worker } // namespace mirror 34*795d594fSAndroid Build Coastguard Worker 35*795d594fSAndroid Build Coastguard Worker namespace detail { 36*795d594fSAndroid Build Coastguard Worker 37*795d594fSAndroid Build Coastguard Worker template <typename MemberType, MemberType** kMember> 38*795d594fSAndroid Build Coastguard Worker struct ClassFromMember { 39*795d594fSAndroid Build Coastguard Worker template <ReadBarrierOption kReadBarrierOption = kWithReadBarrier> 40*795d594fSAndroid Build Coastguard Worker static ObjPtr<mirror::Class> Get() REQUIRES_SHARED(Locks::mutator_lock_); 41*795d594fSAndroid Build Coastguard Worker 42*795d594fSAndroid Build Coastguard Worker mirror::Class* operator->() const REQUIRES_SHARED(Locks::mutator_lock_); 43*795d594fSAndroid Build Coastguard Worker }; 44*795d594fSAndroid Build Coastguard Worker 45*795d594fSAndroid Build Coastguard Worker template <typename MemberType, MemberType** kMember> 46*795d594fSAndroid Build Coastguard Worker bool operator==(const ClassFromMember<MemberType, kMember> lhs, ObjPtr<mirror::Class> rhs) 47*795d594fSAndroid Build Coastguard Worker REQUIRES_SHARED(Locks::mutator_lock_); 48*795d594fSAndroid Build Coastguard Worker 49*795d594fSAndroid Build Coastguard Worker template <typename MemberType, MemberType** kMember> 50*795d594fSAndroid Build Coastguard Worker bool operator==(ObjPtr<mirror::Class> lhs, const ClassFromMember<MemberType, kMember> rhs) 51*795d594fSAndroid Build Coastguard Worker REQUIRES_SHARED(Locks::mutator_lock_); 52*795d594fSAndroid Build Coastguard Worker 53*795d594fSAndroid Build Coastguard Worker template <typename MemberType, MemberType** kMember> 54*795d594fSAndroid Build Coastguard Worker bool operator!=(const ClassFromMember<MemberType, kMember> lhs, ObjPtr<mirror::Class> rhs) 55*795d594fSAndroid Build Coastguard Worker REQUIRES_SHARED(Locks::mutator_lock_); 56*795d594fSAndroid Build Coastguard Worker 57*795d594fSAndroid Build Coastguard Worker template <typename MemberType, MemberType** kMember> 58*795d594fSAndroid Build Coastguard Worker bool operator!=(ObjPtr<mirror::Class> lhs, const ClassFromMember<MemberType, kMember> rhs) 59*795d594fSAndroid Build Coastguard Worker REQUIRES_SHARED(Locks::mutator_lock_); 60*795d594fSAndroid Build Coastguard Worker 61*795d594fSAndroid Build Coastguard Worker } // namespace detail 62*795d594fSAndroid Build Coastguard Worker 63*795d594fSAndroid Build Coastguard Worker // Various classes used in JNI. We cache them so we don't have to keep looking them up. 64*795d594fSAndroid Build Coastguard Worker 65*795d594fSAndroid Build Coastguard Worker struct EXPORT WellKnownClasses { 66*795d594fSAndroid Build Coastguard Worker public: 67*795d594fSAndroid Build Coastguard Worker // Run before native methods are registered. 68*795d594fSAndroid Build Coastguard Worker static void Init(JNIEnv* env); 69*795d594fSAndroid Build Coastguard Worker // Run after native methods are registered. 70*795d594fSAndroid Build Coastguard Worker static void LateInit(JNIEnv* env); 71*795d594fSAndroid Build Coastguard Worker 72*795d594fSAndroid Build Coastguard Worker static void Clear(); 73*795d594fSAndroid Build Coastguard Worker 74*795d594fSAndroid Build Coastguard Worker static void HandleJniIdTypeChange(JNIEnv* env); 75*795d594fSAndroid Build Coastguard Worker 76*795d594fSAndroid Build Coastguard Worker static void InitStringInit(ObjPtr<mirror::Class> string_class, 77*795d594fSAndroid Build Coastguard Worker ObjPtr<mirror::Class> string_builder_class) 78*795d594fSAndroid Build Coastguard Worker REQUIRES_SHARED(Locks::mutator_lock_); 79*795d594fSAndroid Build Coastguard Worker static ArtMethod* StringInitToStringFactory(ArtMethod* method); 80*795d594fSAndroid Build Coastguard Worker static uint32_t StringInitToEntryPoint(ArtMethod* method); 81*795d594fSAndroid Build Coastguard Worker 82*795d594fSAndroid Build Coastguard Worker static ObjPtr<mirror::Class> ToClass(jclass global_jclass) REQUIRES_SHARED(Locks::mutator_lock_); 83*795d594fSAndroid Build Coastguard Worker 84*795d594fSAndroid Build Coastguard Worker private: 85*795d594fSAndroid Build Coastguard Worker static void InitFieldsAndMethodsOnly(JNIEnv* env); 86*795d594fSAndroid Build Coastguard Worker 87*795d594fSAndroid Build Coastguard Worker template <ArtMethod** kMethod> 88*795d594fSAndroid Build Coastguard Worker using ClassFromMethod = detail::ClassFromMember<ArtMethod, kMethod>; 89*795d594fSAndroid Build Coastguard Worker 90*795d594fSAndroid Build Coastguard Worker template <ArtField** kField> 91*795d594fSAndroid Build Coastguard Worker using ClassFromField = detail::ClassFromMember<ArtField, kField>; 92*795d594fSAndroid Build Coastguard Worker 93*795d594fSAndroid Build Coastguard Worker public: 94*795d594fSAndroid Build Coastguard Worker static jclass dalvik_annotation_optimization_CriticalNative; 95*795d594fSAndroid Build Coastguard Worker static jclass dalvik_annotation_optimization_FastNative; 96*795d594fSAndroid Build Coastguard Worker static jclass dalvik_annotation_optimization_NeverCompile; 97*795d594fSAndroid Build Coastguard Worker static jclass dalvik_annotation_optimization_NeverInline; 98*795d594fSAndroid Build Coastguard Worker static jclass java_lang_annotation_Annotation__array; 99*795d594fSAndroid Build Coastguard Worker static jclass java_lang_ClassValue; 100*795d594fSAndroid Build Coastguard Worker static jclass java_lang_Record; 101*795d594fSAndroid Build Coastguard Worker static jclass java_lang_reflect_Parameter__array; 102*795d594fSAndroid Build Coastguard Worker static jclass java_lang_StringFactory; 103*795d594fSAndroid Build Coastguard Worker static jclass java_lang_System; 104*795d594fSAndroid Build Coastguard Worker static jclass java_lang_Void; 105*795d594fSAndroid Build Coastguard Worker static jclass libcore_reflect_AnnotationMember__array; 106*795d594fSAndroid Build Coastguard Worker 107*795d594fSAndroid Build Coastguard Worker static ArtMethod* dalvik_system_BaseDexClassLoader_getLdLibraryPath; 108*795d594fSAndroid Build Coastguard Worker static ArtMethod* dalvik_system_DelegateLastClassLoader_init; // Only for the declaring class. 109*795d594fSAndroid Build Coastguard Worker static ArtMethod* dalvik_system_DexClassLoader_init; // Only for the declaring class. 110*795d594fSAndroid Build Coastguard Worker static ArtMethod* dalvik_system_InMemoryDexClassLoader_init; // Only for the declaring class. 111*795d594fSAndroid Build Coastguard Worker static ArtMethod* dalvik_system_PathClassLoader_init; // Only for the declaring class. 112*795d594fSAndroid Build Coastguard Worker static ArtMethod* dalvik_system_VMRuntime_hiddenApiUsed; 113*795d594fSAndroid Build Coastguard Worker static ArtMethod* java_lang_Boolean_valueOf; 114*795d594fSAndroid Build Coastguard Worker static ArtMethod* java_lang_BootClassLoader_init; // Only for the declaring class. 115*795d594fSAndroid Build Coastguard Worker static ArtMethod* java_lang_Byte_valueOf; 116*795d594fSAndroid Build Coastguard Worker static ArtMethod* java_lang_Character_valueOf; 117*795d594fSAndroid Build Coastguard Worker static ArtMethod* java_lang_ClassLoader_loadClass; 118*795d594fSAndroid Build Coastguard Worker static ArtMethod* java_lang_ClassNotFoundException_init; 119*795d594fSAndroid Build Coastguard Worker static ArtMethod* java_lang_Daemons_start; 120*795d594fSAndroid Build Coastguard Worker static ArtMethod* java_lang_Daemons_stop; 121*795d594fSAndroid Build Coastguard Worker static ArtMethod* java_lang_Daemons_waitForDaemonStart; 122*795d594fSAndroid Build Coastguard Worker static ArtMethod* java_lang_Double_doubleToRawLongBits; 123*795d594fSAndroid Build Coastguard Worker static ArtMethod* java_lang_Double_valueOf; 124*795d594fSAndroid Build Coastguard Worker static ArtMethod* java_lang_Error_init; // Only for the declaring class. 125*795d594fSAndroid Build Coastguard Worker static ArtMethod* java_lang_Float_floatToRawIntBits; 126*795d594fSAndroid Build Coastguard Worker static ArtMethod* java_lang_Float_valueOf; 127*795d594fSAndroid Build Coastguard Worker static ArtMethod* java_lang_IllegalAccessError_init; // Only for the declaring class. 128*795d594fSAndroid Build Coastguard Worker static ArtMethod* java_lang_Integer_valueOf; 129*795d594fSAndroid Build Coastguard Worker static ArtMethod* java_lang_Long_valueOf; 130*795d594fSAndroid Build Coastguard Worker static ArtMethod* java_lang_NoClassDefFoundError_init; // Only for the declaring class. 131*795d594fSAndroid Build Coastguard Worker static ArtMethod* java_lang_OutOfMemoryError_init; // Only for the declaring class. 132*795d594fSAndroid Build Coastguard Worker static ArtMethod* java_lang_Runtime_nativeLoad; 133*795d594fSAndroid Build Coastguard Worker static ArtMethod* java_lang_RuntimeException_init; // Only for the declaring class. 134*795d594fSAndroid Build Coastguard Worker static ArtMethod* java_lang_Short_valueOf; 135*795d594fSAndroid Build Coastguard Worker static ArtMethod* java_lang_StackOverflowError_init; // Only for the declaring class. 136*795d594fSAndroid Build Coastguard Worker static ArtMethod* java_lang_String_charAt; 137*795d594fSAndroid Build Coastguard Worker static ArtMethod* java_lang_Thread_dispatchUncaughtException; 138*795d594fSAndroid Build Coastguard Worker static ArtMethod* java_lang_Thread_init; 139*795d594fSAndroid Build Coastguard Worker static ArtMethod* java_lang_Thread_run; 140*795d594fSAndroid Build Coastguard Worker static ArtMethod* java_lang_ThreadGroup_add; 141*795d594fSAndroid Build Coastguard Worker static ArtMethod* java_lang_ThreadGroup_threadTerminated; 142*795d594fSAndroid Build Coastguard Worker static ArtMethod* java_lang_invoke_MethodHandle_asType; 143*795d594fSAndroid Build Coastguard Worker static ArtMethod* java_lang_invoke_MethodHandle_invokeExact; 144*795d594fSAndroid Build Coastguard Worker static ArtMethod* java_lang_invoke_MethodHandleImpl_init; 145*795d594fSAndroid Build Coastguard Worker static ArtMethod* java_lang_invoke_MethodHandles_lookup; 146*795d594fSAndroid Build Coastguard Worker static ArtMethod* java_lang_invoke_MethodHandles_makeIdentity; 147*795d594fSAndroid Build Coastguard Worker static ArtMethod* java_lang_invoke_MethodHandles_Lookup_findConstructor; 148*795d594fSAndroid Build Coastguard Worker static ArtMethod* java_lang_invoke_MethodType_makeImpl; 149*795d594fSAndroid Build Coastguard Worker static ArtMethod* java_lang_ref_FinalizerReference_add; 150*795d594fSAndroid Build Coastguard Worker static ArtMethod* java_lang_ref_ReferenceQueue_add; 151*795d594fSAndroid Build Coastguard Worker static ArtMethod* java_lang_reflect_InvocationTargetException_init; 152*795d594fSAndroid Build Coastguard Worker static ArtMethod* java_lang_reflect_Parameter_init; 153*795d594fSAndroid Build Coastguard Worker static ArtMethod* java_lang_reflect_Proxy_init; 154*795d594fSAndroid Build Coastguard Worker static ArtMethod* java_lang_reflect_Proxy_invoke; 155*795d594fSAndroid Build Coastguard Worker static ArtMethod* java_nio_Buffer_isDirect; 156*795d594fSAndroid Build Coastguard Worker static ArtMethod* java_nio_DirectByteBuffer_init; 157*795d594fSAndroid Build Coastguard Worker static ArtMethod* java_util_function_Consumer_accept; 158*795d594fSAndroid Build Coastguard Worker static ArtMethod* jdk_internal_math_FloatingDecimal_getBinaryToASCIIConverter_D; 159*795d594fSAndroid Build Coastguard Worker static ArtMethod* jdk_internal_math_FloatingDecimal_getBinaryToASCIIConverter_F; 160*795d594fSAndroid Build Coastguard Worker static ArtMethod* jdk_internal_math_FloatingDecimal_BinaryToASCIIBuffer_getChars; 161*795d594fSAndroid Build Coastguard Worker static ArtMethod* libcore_reflect_AnnotationFactory_createAnnotation; 162*795d594fSAndroid Build Coastguard Worker static ArtMethod* libcore_reflect_AnnotationMember_init; 163*795d594fSAndroid Build Coastguard Worker static ArtMethod* org_apache_harmony_dalvik_ddmc_DdmServer_broadcast; 164*795d594fSAndroid Build Coastguard Worker static ArtMethod* org_apache_harmony_dalvik_ddmc_DdmServer_dispatch; 165*795d594fSAndroid Build Coastguard Worker 166*795d594fSAndroid Build Coastguard Worker static ArtField* dalvik_system_BaseDexClassLoader_pathList; 167*795d594fSAndroid Build Coastguard Worker static ArtField* dalvik_system_BaseDexClassLoader_sharedLibraryLoaders; 168*795d594fSAndroid Build Coastguard Worker static ArtField* dalvik_system_BaseDexClassLoader_sharedLibraryLoadersAfter; 169*795d594fSAndroid Build Coastguard Worker static ArtField* dalvik_system_DexFile_cookie; 170*795d594fSAndroid Build Coastguard Worker static ArtField* dalvik_system_DexFile_fileName; 171*795d594fSAndroid Build Coastguard Worker static ArtField* dalvik_system_DexPathList_dexElements; 172*795d594fSAndroid Build Coastguard Worker static ArtField* dalvik_system_DexPathList__Element_dexFile; 173*795d594fSAndroid Build Coastguard Worker static ArtField* dalvik_system_VMRuntime_nonSdkApiUsageConsumer; 174*795d594fSAndroid Build Coastguard Worker static ArtField* java_io_FileDescriptor_descriptor; 175*795d594fSAndroid Build Coastguard Worker static ArtField* java_lang_ClassLoader_parent; 176*795d594fSAndroid Build Coastguard Worker static ArtField* java_lang_String_EMPTY; 177*795d594fSAndroid Build Coastguard Worker static ArtField* java_lang_Thread_parkBlocker; 178*795d594fSAndroid Build Coastguard Worker static ArtField* java_lang_Thread_daemon; 179*795d594fSAndroid Build Coastguard Worker static ArtField* java_lang_Thread_group; 180*795d594fSAndroid Build Coastguard Worker static ArtField* java_lang_Thread_lock; 181*795d594fSAndroid Build Coastguard Worker static ArtField* java_lang_Thread_name; 182*795d594fSAndroid Build Coastguard Worker static ArtField* java_lang_Thread_priority; 183*795d594fSAndroid Build Coastguard Worker static ArtField* java_lang_Thread_nativePeer; 184*795d594fSAndroid Build Coastguard Worker static ArtField* java_lang_Thread_systemDaemon; 185*795d594fSAndroid Build Coastguard Worker static ArtField* java_lang_Thread_unparkedBeforeStart; 186*795d594fSAndroid Build Coastguard Worker static ArtField* java_lang_ThreadGroup_groups; 187*795d594fSAndroid Build Coastguard Worker static ArtField* java_lang_ThreadGroup_ngroups; 188*795d594fSAndroid Build Coastguard Worker static ArtField* java_lang_ThreadGroup_mainThreadGroup; 189*795d594fSAndroid Build Coastguard Worker static ArtField* java_lang_ThreadGroup_name; 190*795d594fSAndroid Build Coastguard Worker static ArtField* java_lang_ThreadGroup_parent; 191*795d594fSAndroid Build Coastguard Worker static ArtField* java_lang_ThreadGroup_systemThreadGroup; 192*795d594fSAndroid Build Coastguard Worker static ArtField* java_lang_Throwable_cause; 193*795d594fSAndroid Build Coastguard Worker static ArtField* java_lang_Throwable_detailMessage; 194*795d594fSAndroid Build Coastguard Worker static ArtField* java_lang_Throwable_stackTrace; 195*795d594fSAndroid Build Coastguard Worker static ArtField* java_lang_Throwable_stackState; 196*795d594fSAndroid Build Coastguard Worker static ArtField* java_lang_Throwable_suppressedExceptions; 197*795d594fSAndroid Build Coastguard Worker static ArtField* java_nio_Buffer_address; 198*795d594fSAndroid Build Coastguard Worker static ArtField* java_nio_Buffer_capacity; 199*795d594fSAndroid Build Coastguard Worker static ArtField* java_nio_Buffer_elementSizeShift; 200*795d594fSAndroid Build Coastguard Worker static ArtField* java_nio_Buffer_limit; 201*795d594fSAndroid Build Coastguard Worker static ArtField* java_nio_Buffer_position; 202*795d594fSAndroid Build Coastguard Worker static ArtField* java_nio_ByteBuffer_hb; 203*795d594fSAndroid Build Coastguard Worker static ArtField* java_nio_ByteBuffer_isReadOnly; 204*795d594fSAndroid Build Coastguard Worker static ArtField* java_nio_ByteBuffer_offset; 205*795d594fSAndroid Build Coastguard Worker static ArtField* java_util_Collections_EMPTY_LIST; 206*795d594fSAndroid Build Coastguard Worker static ArtField* java_util_concurrent_ThreadLocalRandom_seeder; 207*795d594fSAndroid Build Coastguard Worker static ArtField* jdk_internal_math_FloatingDecimal_BinaryToASCIIBuffer_buffer; 208*795d594fSAndroid Build Coastguard Worker static ArtField* jdk_internal_math_FloatingDecimal_ExceptionalBinaryToASCIIBuffer_image; 209*795d594fSAndroid Build Coastguard Worker static ArtField* libcore_util_EmptyArray_STACK_TRACE_ELEMENT; 210*795d594fSAndroid Build Coastguard Worker static ArtField* org_apache_harmony_dalvik_ddmc_Chunk_data; 211*795d594fSAndroid Build Coastguard Worker static ArtField* org_apache_harmony_dalvik_ddmc_Chunk_length; 212*795d594fSAndroid Build Coastguard Worker static ArtField* org_apache_harmony_dalvik_ddmc_Chunk_offset; 213*795d594fSAndroid Build Coastguard Worker static ArtField* org_apache_harmony_dalvik_ddmc_Chunk_type; 214*795d594fSAndroid Build Coastguard Worker 215*795d594fSAndroid Build Coastguard Worker static ArtField* java_lang_Byte_ByteCache_cache; 216*795d594fSAndroid Build Coastguard Worker static ArtField* java_lang_Character_CharacterCache_cache; 217*795d594fSAndroid Build Coastguard Worker static ArtField* java_lang_Short_ShortCache_cache; 218*795d594fSAndroid Build Coastguard Worker static ArtField* java_lang_Integer_IntegerCache_cache; 219*795d594fSAndroid Build Coastguard Worker static ArtField* java_lang_Long_LongCache_cache; 220*795d594fSAndroid Build Coastguard Worker 221*795d594fSAndroid Build Coastguard Worker static ArtField* java_lang_Byte_value; 222*795d594fSAndroid Build Coastguard Worker static ArtField* java_lang_Character_value; 223*795d594fSAndroid Build Coastguard Worker static ArtField* java_lang_Short_value; 224*795d594fSAndroid Build Coastguard Worker static ArtField* java_lang_Integer_value; 225*795d594fSAndroid Build Coastguard Worker static ArtField* java_lang_Long_value; 226*795d594fSAndroid Build Coastguard Worker 227*795d594fSAndroid Build Coastguard Worker static constexpr ClassFromField<&dalvik_system_BaseDexClassLoader_pathList> 228*795d594fSAndroid Build Coastguard Worker dalvik_system_BaseDexClassLoader; 229*795d594fSAndroid Build Coastguard Worker static constexpr ClassFromMethod<&dalvik_system_DelegateLastClassLoader_init> 230*795d594fSAndroid Build Coastguard Worker dalvik_system_DelegateLastClassLoader; 231*795d594fSAndroid Build Coastguard Worker static constexpr ClassFromMethod<&dalvik_system_DexClassLoader_init> 232*795d594fSAndroid Build Coastguard Worker dalvik_system_DexClassLoader; 233*795d594fSAndroid Build Coastguard Worker static constexpr ClassFromField<&dalvik_system_DexFile_cookie> dalvik_system_DexFile; 234*795d594fSAndroid Build Coastguard Worker static constexpr ClassFromField<&dalvik_system_DexPathList_dexElements> dalvik_system_DexPathList; 235*795d594fSAndroid Build Coastguard Worker static constexpr ClassFromField<&dalvik_system_DexPathList__Element_dexFile> 236*795d594fSAndroid Build Coastguard Worker dalvik_system_DexPathList__Element; 237*795d594fSAndroid Build Coastguard Worker static constexpr ClassFromMethod<&dalvik_system_InMemoryDexClassLoader_init> 238*795d594fSAndroid Build Coastguard Worker dalvik_system_InMemoryDexClassLoader; 239*795d594fSAndroid Build Coastguard Worker static constexpr ClassFromMethod<&dalvik_system_PathClassLoader_init> 240*795d594fSAndroid Build Coastguard Worker dalvik_system_PathClassLoader; 241*795d594fSAndroid Build Coastguard Worker static constexpr ClassFromMethod<&java_lang_BootClassLoader_init> java_lang_BootClassLoader; 242*795d594fSAndroid Build Coastguard Worker static constexpr ClassFromField<&java_lang_ClassLoader_parent> java_lang_ClassLoader; 243*795d594fSAndroid Build Coastguard Worker static constexpr ClassFromMethod<&java_lang_Daemons_start> java_lang_Daemons; 244*795d594fSAndroid Build Coastguard Worker static constexpr ClassFromMethod<&java_lang_Error_init> java_lang_Error; 245*795d594fSAndroid Build Coastguard Worker static constexpr ClassFromMethod<&java_lang_IllegalAccessError_init> 246*795d594fSAndroid Build Coastguard Worker java_lang_IllegalAccessError; 247*795d594fSAndroid Build Coastguard Worker static constexpr ClassFromMethod<&java_lang_NoClassDefFoundError_init> 248*795d594fSAndroid Build Coastguard Worker java_lang_NoClassDefFoundError; 249*795d594fSAndroid Build Coastguard Worker static constexpr ClassFromMethod<&java_lang_OutOfMemoryError_init> java_lang_OutOfMemoryError; 250*795d594fSAndroid Build Coastguard Worker static constexpr ClassFromMethod<&java_lang_RuntimeException_init> java_lang_RuntimeException; 251*795d594fSAndroid Build Coastguard Worker static constexpr ClassFromMethod<&java_lang_StackOverflowError_init> 252*795d594fSAndroid Build Coastguard Worker java_lang_StackOverflowError; 253*795d594fSAndroid Build Coastguard Worker static constexpr ClassFromField<&java_lang_Thread_daemon> java_lang_Thread; 254*795d594fSAndroid Build Coastguard Worker static constexpr ClassFromField<&java_lang_ThreadGroup_groups> java_lang_ThreadGroup; 255*795d594fSAndroid Build Coastguard Worker static constexpr ClassFromMethod<&java_lang_invoke_MethodHandle_invokeExact> 256*795d594fSAndroid Build Coastguard Worker java_lang_invoke_MethodHandle; 257*795d594fSAndroid Build Coastguard Worker static constexpr ClassFromMethod<&java_lang_invoke_MethodType_makeImpl> 258*795d594fSAndroid Build Coastguard Worker java_lang_invoke_MethodType; 259*795d594fSAndroid Build Coastguard Worker static constexpr ClassFromMethod<&java_lang_reflect_InvocationTargetException_init> 260*795d594fSAndroid Build Coastguard Worker java_lang_reflect_InvocationTargetException; 261*795d594fSAndroid Build Coastguard Worker static constexpr ClassFromMethod<&java_lang_reflect_Parameter_init> 262*795d594fSAndroid Build Coastguard Worker java_lang_reflect_Parameter; 263*795d594fSAndroid Build Coastguard Worker static constexpr ClassFromField<&java_nio_Buffer_address> java_nio_Buffer; 264*795d594fSAndroid Build Coastguard Worker static constexpr ClassFromField<&java_util_Collections_EMPTY_LIST> java_util_Collections; 265*795d594fSAndroid Build Coastguard Worker static constexpr ClassFromField<&libcore_util_EmptyArray_STACK_TRACE_ELEMENT> 266*795d594fSAndroid Build Coastguard Worker libcore_util_EmptyArray; 267*795d594fSAndroid Build Coastguard Worker 268*795d594fSAndroid Build Coastguard Worker static constexpr ClassFromField<&java_lang_Byte_ByteCache_cache> java_lang_Byte_ByteCache; 269*795d594fSAndroid Build Coastguard Worker static constexpr ClassFromField<&java_lang_Character_CharacterCache_cache> 270*795d594fSAndroid Build Coastguard Worker java_lang_Character_CharacterCache; 271*795d594fSAndroid Build Coastguard Worker static constexpr ClassFromField<&java_lang_Short_ShortCache_cache> java_lang_Short_ShortCache; 272*795d594fSAndroid Build Coastguard Worker static constexpr ClassFromField<&java_lang_Integer_IntegerCache_cache> 273*795d594fSAndroid Build Coastguard Worker java_lang_Integer_IntegerCache; 274*795d594fSAndroid Build Coastguard Worker static constexpr ClassFromField<&java_lang_Long_LongCache_cache> java_lang_Long_LongCache; 275*795d594fSAndroid Build Coastguard Worker 276*795d594fSAndroid Build Coastguard Worker static constexpr ClassFromMethod<&java_lang_Boolean_valueOf> java_lang_Boolean; 277*795d594fSAndroid Build Coastguard Worker static constexpr ClassFromMethod<&java_lang_Byte_valueOf> java_lang_Byte; 278*795d594fSAndroid Build Coastguard Worker static constexpr ClassFromMethod<&java_lang_Character_valueOf> java_lang_Character; 279*795d594fSAndroid Build Coastguard Worker static constexpr ClassFromMethod<&java_lang_Short_valueOf> java_lang_Short; 280*795d594fSAndroid Build Coastguard Worker static constexpr ClassFromMethod<&java_lang_Integer_valueOf> java_lang_Integer; 281*795d594fSAndroid Build Coastguard Worker static constexpr ClassFromMethod<&java_lang_Float_valueOf> java_lang_Float; 282*795d594fSAndroid Build Coastguard Worker static constexpr ClassFromMethod<&java_lang_Long_valueOf> java_lang_Long; 283*795d594fSAndroid Build Coastguard Worker static constexpr ClassFromMethod<&java_lang_Double_valueOf> java_lang_Double; 284*795d594fSAndroid Build Coastguard Worker }; 285*795d594fSAndroid Build Coastguard Worker 286*795d594fSAndroid Build Coastguard Worker } // namespace art 287*795d594fSAndroid Build Coastguard Worker 288*795d594fSAndroid Build Coastguard Worker #endif // ART_RUNTIME_WELL_KNOWN_CLASSES_H_ 289