Explicitly pass Thread::Current to MutexLock and Alloc.

Change-Id: I8b75bc0617915465f102815b32306aa7760dcae4
diff --git a/src/native/java_lang_Class.cc b/src/native/java_lang_Class.cc
index c023b7e..488df80 100644
--- a/src/native/java_lang_Class.cc
+++ b/src/native/java_lang_Class.cc
@@ -199,7 +199,8 @@
     AbstractMethod* m = c->GetVirtualMethod(i);
     mh.ChangeMethod(m);
     if (IsVisibleMethod(m, publicOnly)) {
-      if (mh.GetReturnType() == NULL || mh.GetParameterTypes() == NULL) {
+      // TODO: the use of GetParameterTypes creates an unused array here.
+      if (mh.GetReturnType() == NULL || mh.GetParameterTypes(soa.Self()) == NULL) {
         DCHECK(env->ExceptionOccurred());
         return NULL;
       }
@@ -213,7 +214,8 @@
     AbstractMethod* m = c->GetDirectMethod(i);
     mh.ChangeMethod(m);
     if (IsVisibleMethod(m, publicOnly)) {
-      if (mh.GetReturnType() == NULL || mh.GetParameterTypes() == NULL) {
+      // TODO: the use of GetParameterTypes creates an unused array here.
+      if (mh.GetReturnType() == NULL || mh.GetParameterTypes(soa.Self()) == NULL) {
         DCHECK(env->ExceptionOccurred());
         return NULL;
       }
@@ -349,7 +351,7 @@
 static jobjectArray Class_getProxyInterfaces(JNIEnv* env, jobject javaThis) {
   ScopedObjectAccess soa(env);
   SynthesizedProxyClass* c = down_cast<SynthesizedProxyClass*>(DecodeClass(soa, javaThis));
-  return soa.AddLocalReference<jobjectArray>(c->GetInterfaces()->Clone());
+  return soa.AddLocalReference<jobjectArray>(c->GetInterfaces()->Clone(soa.Self()));
 }
 
 static jboolean Class_isAssignableFrom(JNIEnv* env, jobject javaLhs, jclass javaRhs) {
@@ -412,7 +414,7 @@
     return NULL;
   }
 
-  Object* new_obj = c->AllocObject();
+  Object* new_obj = c->AllocObject(soa.Self());
   if (new_obj == NULL) {
     DCHECK(soa.Self()->IsExceptionPending());
     return NULL;