diff options
| author | 2022-10-18 09:49:00 +0000 | |
|---|---|---|
| committer | 2022-10-18 15:58:58 +0000 | |
| commit | 5be5ce773a683439792c799827fcef2fea0cf157 (patch) | |
| tree | 0010a7309d5b8b955f5418515cd3fd54aa32a984 /runtime/class_loader_context.cc | |
| parent | b47fc9709ca8d36c44dca81dcb8cc211e933f082 (diff) | |
Reland "Change well known `ClassLoader` fields to `ArtField*`."
This reverts commit 839193ee2031d28aac2ce16c4b76ad40531b07cc.
Reason for revert: Reland with a fix - make CompilerDriver
reponsible for initializing required `ClassLoader` classes
for boot image.
Test: m test-art-host-gtest
Test: testrunner.py --host --optimizing
Test: Manually run Golem benchmark ArrayListStress.
Bug: 253570082
Change-Id: I2ddb70566352f8728f089b3a6c58473270240e25
Diffstat (limited to 'runtime/class_loader_context.cc')
| -rw-r--r-- | runtime/class_loader_context.cc | 24 |
1 files changed, 8 insertions, 16 deletions
diff --git a/runtime/class_loader_context.cc b/runtime/class_loader_context.cc index 2ab905ba05..2efa2d6bc6 100644 --- a/runtime/class_loader_context.cc +++ b/runtime/class_loader_context.cc @@ -1028,13 +1028,10 @@ static bool CollectDexFilesFromSupportedClassLoader(ScopedObjectAccessAlreadyRun // All supported class loaders inherit from BaseDexClassLoader. // We need to get the DexPathList and loop through it. - ArtField* const cookie_field = - jni::DecodeArtField(WellKnownClasses::dalvik_system_DexFile_cookie); - ArtField* const dex_file_field = - jni::DecodeArtField(WellKnownClasses::dalvik_system_DexPathList__Element_dexFile); + ArtField* const cookie_field = WellKnownClasses::dalvik_system_DexFile_cookie; + ArtField* const dex_file_field = WellKnownClasses::dalvik_system_DexPathList__Element_dexFile; ObjPtr<mirror::Object> dex_path_list = - jni::DecodeArtField(WellKnownClasses::dalvik_system_BaseDexClassLoader_pathList)-> - GetObject(class_loader.Get()); + WellKnownClasses::dalvik_system_BaseDexClassLoader_pathList->GetObject(class_loader.Get()); CHECK(cookie_field != nullptr); CHECK(dex_file_field != nullptr); if (dex_path_list == nullptr) { @@ -1044,8 +1041,7 @@ static bool CollectDexFilesFromSupportedClassLoader(ScopedObjectAccessAlreadyRun } // DexPathList has an array dexElements of Elements[] which each contain a dex file. ObjPtr<mirror::Object> dex_elements_obj = - jni::DecodeArtField(WellKnownClasses::dalvik_system_DexPathList_dexElements)-> - GetObject(dex_path_list); + WellKnownClasses::dalvik_system_DexPathList_dexElements->GetObject(dex_path_list); // Loop through each dalvik.system.DexPathList$Element's dalvik.system.DexFile and look // at the mCookie which is a DexFile vector. if (dex_elements_obj == nullptr) { @@ -1081,10 +1077,8 @@ static bool GetDexFilesFromDexElementsArray( std::vector<const DexFile*>* out_dex_files) REQUIRES_SHARED(Locks::mutator_lock_) { DCHECK(dex_elements != nullptr); - ArtField* const cookie_field = - jni::DecodeArtField(WellKnownClasses::dalvik_system_DexFile_cookie); - ArtField* const dex_file_field = - jni::DecodeArtField(WellKnownClasses::dalvik_system_DexPathList__Element_dexFile); + ArtField* const cookie_field = WellKnownClasses::dalvik_system_DexFile_cookie; + ArtField* const dex_file_field = WellKnownClasses::dalvik_system_DexPathList__Element_dexFile; const ObjPtr<mirror::Class> element_class = soa.Decode<mirror::Class>( WellKnownClasses::dalvik_system_DexPathList__Element); const ObjPtr<mirror::Class> dexfile_class = soa.Decode<mirror::Class>( @@ -1198,8 +1192,7 @@ bool ClassLoaderContext::CreateInfoFromClassLoader( // Add the shared libraries. StackHandleScope<5> hs(Thread::Current()); - ArtField* field = - jni::DecodeArtField(WellKnownClasses::dalvik_system_BaseDexClassLoader_sharedLibraryLoaders); + ArtField* field = WellKnownClasses::dalvik_system_BaseDexClassLoader_sharedLibraryLoaders; ObjPtr<mirror::Object> raw_shared_libraries = field->GetObject(class_loader.Get()); if (raw_shared_libraries != nullptr) { Handle<mirror::ObjectArray<mirror::ClassLoader>> shared_libraries = @@ -1217,8 +1210,7 @@ bool ClassLoaderContext::CreateInfoFromClassLoader( } } } - ArtField* field2 = jni::DecodeArtField( - WellKnownClasses::dalvik_system_BaseDexClassLoader_sharedLibraryLoadersAfter); + ArtField* field2 = WellKnownClasses::dalvik_system_BaseDexClassLoader_sharedLibraryLoadersAfter; ObjPtr<mirror::Object> raw_shared_libraries_after = field2->GetObject(class_loader.Get()); if (raw_shared_libraries_after != nullptr) { Handle<mirror::ObjectArray<mirror::ClassLoader>> shared_libraries_after = |