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
diff --git a/runtime/compiler_callbacks.h b/runtime/compiler_callbacks.h
index d1a6861..3fabe3e 100644
--- a/runtime/compiler_callbacks.h
+++ b/runtime/compiler_callbacks.h
@@ -40,8 +40,16 @@
// done so. Return false if relocating in this way would be problematic.
virtual bool IsRelocationPossible() = 0;
+ bool IsBootImage() {
+ return boot_image_;
+ }
+
protected:
- CompilerCallbacks() { }
+ explicit CompilerCallbacks(bool boot_image) : boot_image_(boot_image) { }
+
+ private:
+ // Whether the compiler is creating a boot image.
+ const bool boot_image_;
};
} // namespace art