summaryrefslogtreecommitdiffstats
path: root/oatdump
diff options
context:
space:
mode:
authorAndreas Gampe <agampe@google.com>2015-03-25 17:19:53 -0700
committerAndreas Gampe <agampe@google.com>2015-03-27 21:43:21 -0700
commit81c6f8db12b203878a7d72444ead2bc7cf5c47ad (patch)
tree11caae30b75b700ac648356fd30759a6154be997 /oatdump
parentcac51526bbd03947676a8d49700425b19a57e447 (diff)
downloadart-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.cc6
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);