Add HeapTest and make GC work enough to pass it

Change-Id: If06eaef2921b64b3226bfd347acaec60ec993e67
diff --git a/src/jni_internal.cc b/src/jni_internal.cc
index 9213056..5acb155 100644
--- a/src/jni_internal.cc
+++ b/src/jni_internal.cc
@@ -14,6 +14,7 @@
 #include "UniquePtr.h"
 #include "assembler.h"
 #include "class_linker.h"
+#include "class_loader.h"
 #include "jni.h"
 #include "logging.h"
 #include "object.h"
@@ -904,7 +905,7 @@
     if (!Runtime::Current()->GetClassLinker()->EnsureInitialized(c)) {
       return NULL;
     }
-    return AddLocalReference<jobject>(ts, c->NewInstance());
+    return AddLocalReference<jobject>(ts, c->AllocObject());
   }
 
   static jobject NewObject(JNIEnv* env, jclass clazz, jmethodID mid, ...) {
@@ -922,7 +923,7 @@
     if (!Runtime::Current()->GetClassLinker()->EnsureInitialized(c)) {
       return NULL;
     }
-    Object* result = c->NewInstance();
+    Object* result = c->AllocObject();
     jobject local_result = AddLocalReference<jobject>(ts, result);
     CallNonvirtualVoidMethodV(env, local_result, java_class, mid, args);
     return local_result;
@@ -934,7 +935,7 @@
     if (!Runtime::Current()->GetClassLinker()->EnsureInitialized(c)) {
       return NULL;
     }
-    Object* result = c->NewInstance();
+    Object* result = c->AllocObject();
     jobject local_result = AddLocalReference<jobjectArray>(ts, result);
     CallNonvirtualVoidMethodA(env, local_result, java_class, mid, args);
     return local_result;