Move the thread.cc Class*/Field*/Method* caching over to WellKnownClasses.

Just heap.cc left to do, plus maybe some of the less convincing ClassLinker
roots.

Change-Id: Ib8adf3e28e00025e0c016dcd8d7b17e42f96796c
diff --git a/src/well_known_classes.h b/src/well_known_classes.h
index 5d45938..613c47e 100644
--- a/src/well_known_classes.h
+++ b/src/well_known_classes.h
@@ -21,6 +21,8 @@
 
 namespace art {
 
+class Class;
+
 // Various classes used in JNI. We cache them so we don't have to keep looking
 // them up. Similar to libcore's JniConstants (except there's no overlap, so
 // we keep them separate).
@@ -28,6 +30,8 @@
 struct WellKnownClasses {
   static void Init(JNIEnv* env);
 
+  static Class* ToClass(jclass global_jclass);
+
   static jclass com_android_dex_Dex;
   static jclass java_lang_ClassLoader;
   static jclass java_lang_ClassNotFoundException;
@@ -39,6 +43,9 @@
   static jclass java_lang_reflect_Proxy;
   static jclass java_lang_reflect_UndeclaredThrowableException;
   static jclass java_lang_Thread;
+  static jclass java_lang_ThreadGroup;
+  static jclass java_lang_ThreadLock;
+  static jclass java_lang_Thread$UncaughtExceptionHandler;
   static jclass java_nio_ReadWriteDirectByteBuffer;
   static jclass org_apache_harmony_dalvik_ddmc_Chunk;
   static jclass org_apache_harmony_dalvik_ddmc_DdmServer;
@@ -49,11 +56,25 @@
   static jmethodID java_lang_Daemons_start;
   static jmethodID java_lang_reflect_InvocationHandler_invoke;
   static jmethodID java_lang_Thread_init;
+  static jmethodID java_lang_Thread_run;
+  static jmethodID java_lang_Thread$UncaughtExceptionHandler_uncaughtException;
+  static jmethodID java_lang_ThreadGroup_removeThread;
   static jmethodID java_nio_ReadWriteDirectByteBuffer_init;
   static jmethodID org_apache_harmony_dalvik_ddmc_DdmServer_broadcast;
   static jmethodID org_apache_harmony_dalvik_ddmc_DdmServer_dispatch;
 
   static jfieldID java_lang_reflect_Proxy_h;
+  static jfieldID java_lang_Thread_daemon;
+  static jfieldID java_lang_Thread_group;
+  static jfieldID java_lang_Thread_lock;
+  static jfieldID java_lang_Thread_name;
+  static jfieldID java_lang_Thread_priority;
+  static jfieldID java_lang_Thread_uncaughtHandler;
+  static jfieldID java_lang_Thread_vmData;
+  static jfieldID java_lang_ThreadGroup_mainThreadGroup;
+  static jfieldID java_lang_ThreadGroup_name;
+  static jfieldID java_lang_ThreadGroup_systemThreadGroup;
+  static jfieldID java_lang_ThreadLock_thread;
   static jfieldID java_nio_ReadWriteDirectByteBuffer_capacity;
   static jfieldID java_nio_ReadWriteDirectByteBuffer_effectiveDirectAddress;
   static jfieldID org_apache_harmony_dalvik_ddmc_Chunk_data;