Verify thread state for all allocations, fix 2 failures

Change-Id: If3611f4eda5a567cc2c573f47dbabfe40a00e205
diff --git a/src/heap.cc b/src/heap.cc
index cda2202..4daf4b5 100644
--- a/src/heap.cc
+++ b/src/heap.cc
@@ -333,7 +333,7 @@
 
   // Since allocation can cause a GC which will need to SuspendAll,
   // make sure all allocators are in the kRunnable state.
-  DCHECK_EQ(Thread::Current()->GetState(), Thread::kRunnable);
+  CHECK_EQ(Thread::Current()->GetState(), Thread::kRunnable);
 
   // Fail impossible allocations
   if (alloc_size > space->Capacity()) {
diff --git a/src/java_lang_Class.cc b/src/java_lang_Class.cc
index 826841b..6ec1051 100644
--- a/src/java_lang_Class.cc
+++ b/src/java_lang_Class.cc
@@ -282,6 +282,7 @@
 }
 
 jstring Class_getNameNative(JNIEnv* env, jobject javaThis) {
+  ScopedThreadStateChange tsc(Thread::Current(), Thread::kRunnable);
   Class* c = Decode<Class*>(env, javaThis);
   return AddLocalReference<jstring>(env, c->ComputeName());
 }
diff --git a/src/java_lang_reflect_Method.cc b/src/java_lang_reflect_Method.cc
index 10f5779..3be13ca 100644
--- a/src/java_lang_reflect_Method.cc
+++ b/src/java_lang_reflect_Method.cc
@@ -45,6 +45,8 @@
   }
   CHECK_NE(throws_index, -1);
   ObjectArray<Class>* declared_exceptions = proxy_class->GetThrows()->Get(throws_index);
+  // Change thread state for allocation
+  ScopedThreadStateChange tsc(Thread::Current(), Thread::kRunnable);
   return AddLocalReference<jobject>(env, declared_exceptions->Clone());
 }