summaryrefslogtreecommitdiff
path: root/runtime/class_loader_context.cc
diff options
context:
space:
mode:
author VladimĂ­r Marko <vmarko@google.com> 2022-10-18 09:49:00 +0000
committer Treehugger Robot <treehugger-gerrit@google.com> 2022-10-18 15:58:58 +0000
commit5be5ce773a683439792c799827fcef2fea0cf157 (patch)
tree0010a7309d5b8b955f5418515cd3fd54aa32a984 /runtime/class_loader_context.cc
parentb47fc9709ca8d36c44dca81dcb8cc211e933f082 (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.cc24
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 =