diff options
author | 2017-01-27 09:00:15 -0800 | |
---|---|---|
committer | 2017-01-30 16:22:44 -0800 | |
commit | 7916f20d9251773a8543f7f15d76ce21110acf96 (patch) | |
tree | 47a3e35fc479a0e814261afe5ce707288dcf3454 /runtime/openjdkjvmti/ti_class_loader.cc | |
parent | f22bf9f809def57c96a19d932467a175bbd9c08c (diff) |
Enable redefining Bootclasspath classes
Test: mma -j40 test-art-host
Change-Id: I84fff0b428fbaeaba003269614310fdab576bcd6
Diffstat (limited to 'runtime/openjdkjvmti/ti_class_loader.cc')
-rw-r--r-- | runtime/openjdkjvmti/ti_class_loader.cc | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/runtime/openjdkjvmti/ti_class_loader.cc b/runtime/openjdkjvmti/ti_class_loader.cc index b68fc60c6c..c2f17924da 100644 --- a/runtime/openjdkjvmti/ti_class_loader.cc +++ b/runtime/openjdkjvmti/ti_class_loader.cc @@ -61,9 +61,14 @@ namespace openjdkjvmti { bool ClassLoaderHelper::AddToClassLoader(art::Thread* self, art::Handle<art::mirror::ClassLoader> loader, const art::DexFile* dex_file) { + art::ScopedObjectAccessUnchecked soa(self); art::StackHandleScope<2> hs(self); - art::Handle<art::mirror::Object> java_dex_file_obj(hs.NewHandle(FindSourceDexFileObject(self, - loader))); + if (art::ClassLinker::IsBootClassLoader(soa, loader.Get())) { + art::Runtime::Current()->GetClassLinker()->AppendToBootClassPath(self, *dex_file); + return true; + } + art::Handle<art::mirror::Object> java_dex_file_obj( + hs.NewHandle(FindSourceDexFileObject(self, loader))); if (java_dex_file_obj.IsNull()) { return false; } |