summaryrefslogtreecommitdiff
path: root/runtime/openjdkjvmti/ti_class_loader.cc
diff options
context:
space:
mode:
author Alex Light <allight@google.com> 2017-01-27 09:00:15 -0800
committer Alex Light <allight@google.com> 2017-01-30 16:22:44 -0800
commit7916f20d9251773a8543f7f15d76ce21110acf96 (patch)
tree47a3e35fc479a0e814261afe5ce707288dcf3454 /runtime/openjdkjvmti/ti_class_loader.cc
parentf22bf9f809def57c96a19d932467a175bbd9c08c (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.cc9
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;
}