diff options
author | Andreas Gampe <agampe@google.com> | 2015-03-25 17:19:53 -0700 |
---|---|---|
committer | Andreas Gampe <agampe@google.com> | 2015-03-27 21:43:21 -0700 |
commit | 81c6f8db12b203878a7d72444ead2bc7cf5c47ad (patch) | |
tree | 11caae30b75b700ac648356fd30759a6154be997 /oatdump | |
parent | cac51526bbd03947676a8d49700425b19a57e447 (diff) | |
download | art-81c6f8db12b203878a7d72444ead2bc7cf5c47ad.zip art-81c6f8db12b203878a7d72444ead2bc7cf5c47ad.tar.gz art-81c6f8db12b203878a7d72444ead2bc7cf5c47ad.tar.bz2 |
ART: PathClassLoader for compiler
Use an actual PathClassLoader when compiling apps, instead of a
side structure and cutout.
This CL sets up a minimal object 'cluster' that recreates the Java
side of a regular ClassLoader such that the Class-Linker will
recognize it and use the internal native fast-path.
This CL removes the now unnecessary compile-time-classpath and
replaces it with a single 'compiling-the-boot-image' flag in the
compiler callbacks.
Note: This functionality is *only* intended for the compiler, as
the objects have not been completely initialized.
Bug: 19781184
Change-Id: I7f36af12dd7852d21281110a25c119e8c0669c1d
Diffstat (limited to 'oatdump')
-rw-r--r-- | oatdump/oatdump.cc | 6 |
1 files changed, 1 insertions, 5 deletions
diff --git a/oatdump/oatdump.cc b/oatdump/oatdump.cc index daca971..7bde471 100644 --- a/oatdump/oatdump.cc +++ b/oatdump/oatdump.cc @@ -2158,16 +2158,12 @@ static int DumpOatWithRuntime(Runtime* runtime, OatFile* oat_file, OatDumperOpti } // Need a class loader. - soa.Env()->AllocObject(WellKnownClasses::dalvik_system_PathClassLoader); - ScopedLocalRef<jobject> class_loader_local(soa.Env(), - soa.Env()->AllocObject(WellKnownClasses::dalvik_system_PathClassLoader)); - jobject class_loader = soa.Env()->NewGlobalRef(class_loader_local.get()); // Fake that we're a compiler. std::vector<const DexFile*> class_path; for (auto& dex_file : dex_files) { class_path.push_back(dex_file.get()); } - runtime->SetCompileTimeClassPath(class_loader, class_path); + jobject class_loader = class_linker->CreatePathClassLoader(self, class_path); // Use the class loader while dumping. StackHandleScope<1> scope(self); |