Initialize primitive type classes during linker initialization.
Change-Id: Ib31da85afcc59c5d0a14346fb7f97043487fd662
diff --git a/src/class_linker.h b/src/class_linker.h
index fec3cb1..89fd8f7 100644
--- a/src/class_linker.h
+++ b/src/class_linker.h
@@ -18,12 +18,19 @@
ClassLinker() {}
~ClassLinker() {}
+ // Initializes the class linker.
+ void Init();
+
// Finds a class by its descriptor name.
Class* FindClass(const char* descriptor,
Object* class_loader,
DexFile* dex_file);
- Class* FindPrimitiveClass(const char* descriptor);
+ Class* FindSystemClass(const char* descriptor) {
+ return FindClass(descriptor, NULL, NULL);
+ }
+
+ Class* FindPrimitiveClass(JType type);
bool InitializeClass(Class* klass);
@@ -38,6 +45,8 @@
void AppendToClassPath(DexFile* dex_file);
private:
+ Class* CreatePrimitiveClass(JType type, const char* descriptor);
+
// Inserts a class into the class table. Returns true if the class
// was inserted.
bool InsertClass(Class* klass);
@@ -85,6 +94,18 @@
// TODO: classpath
+ Class* primitive_boolean_;
+ Class* primitive_char_;
+ Class* primitive_float_;
+ Class* primitive_double_;
+ Class* primitive_byte_;
+ Class* primitive_short_;
+ Class* primitive_int_;
+ Class* primitive_long_;
+ Class* primitive_void_;
+
+ Class* java_lang_Class_;
+
DISALLOW_COPY_AND_ASSIGN(ClassLinker);
};