Implement JNI NewBooleanArray et cetera.

(Primitive types only. NewObjectArray to come...)

Change-Id: I2f54031d96062d666089c91ba40e16028ae21bd4
diff --git a/src/class_linker.h b/src/class_linker.h
index fa50537..b2b4c95 100644
--- a/src/class_linker.h
+++ b/src/class_linker.h
@@ -31,6 +31,8 @@
   Class* FindClass(const StringPiece& descriptor,
                    ClassLoader* class_loader);
 
+  Class* FindPrimitiveClass(char type);
+
   Class* FindSystemClass(const StringPiece& descriptor) {
     return FindClass(descriptor, NULL);
   }
@@ -42,8 +44,9 @@
   void VisitRoots(Heap::RootVistor* root_visitor, void* arg);
 
  private:
-  ClassLinker() {
-    classes_lock_ = Mutex::Create("ClassLinker::Lock");
+  ClassLinker()
+      : classes_lock_(Mutex::Create("ClassLinker::Lock")),
+        init_done_(false) {
   }
 
   void Init(const std::vector<DexFile*>& boot_class_path_);
@@ -69,8 +72,6 @@
   Class* CreateArrayClass(const StringPiece& descriptor,
                           ClassLoader* class_loader);
 
-  Class* FindPrimitiveClass(char type);
-
   const DexFile& FindDexFile(const DexCache* dex_cache) const;
 
   DexCache* FindDexCache(const DexFile* dex_file) const;
@@ -165,23 +166,28 @@
     kJavaLangObject,
     kObjectArrayClass,
     kJavaLangString,
-    kCharArrayClass,
-    kIntArrayClass,
-    kLongArrayClass,
     kJavaLangReflectField,
     kJavaLangReflectMethod,
     kJavaLangClassLoader,
     kDalvikSystemBaseDexClassLoader,
     kDalvikSystemPathClassLoader,
     kPrimitiveBoolean,
-    kPrimitiveChar,
-    kPrimitiveFloat,
-    kPrimitiveDouble,
     kPrimitiveByte,
-    kPrimitiveShort,
+    kPrimitiveChar,
+    kPrimitiveDouble,
+    kPrimitiveFloat,
     kPrimitiveInt,
     kPrimitiveLong,
+    kPrimitiveShort,
     kPrimitiveVoid,
+    kBooleanArrayClass,
+    kByteArrayClass,
+    kCharArrayClass,
+    kDoubleArrayClass,
+    kFloatArrayClass,
+    kIntArrayClass,
+    kLongArrayClass,
+    kShortArrayClass,
     kClassRootsMax,
   };
   ObjectArray<Class>* class_roots_;