Finish cleanup of class/field/method caching.

Change-Id: I289ae724cbd98487429275837d23b7b2d7096156
diff --git a/src/heap.cc b/src/heap.cc
index bc59cfc..e50a31c 100644
--- a/src/heap.cc
+++ b/src/heap.cc
@@ -142,8 +142,6 @@
       is_gc_running_(false),
       num_bytes_allocated_(0),
       num_objects_allocated_(0),
-      java_lang_ref_FinalizerReference_(NULL),
-      java_lang_ref_ReferenceQueue_(NULL),
       reference_referent_offset_(0),
       reference_queue_offset_(0),
       reference_queueNext_offset_(0),
@@ -728,14 +726,6 @@
   lock_->Unlock();
 }
 
-void Heap::SetWellKnownClasses(Class* java_lang_ref_FinalizerReference,
-    Class* java_lang_ref_ReferenceQueue) {
-  java_lang_ref_FinalizerReference_ = java_lang_ref_FinalizerReference;
-  java_lang_ref_ReferenceQueue_ = java_lang_ref_ReferenceQueue;
-  CHECK(java_lang_ref_FinalizerReference_ != NULL);
-  CHECK(java_lang_ref_ReferenceQueue_ != NULL);
-}
-
 void Heap::SetReferenceOffsets(MemberOffset reference_referent_offset,
     MemberOffset reference_queue_offset,
     MemberOffset reference_queueNext_offset,
@@ -813,26 +803,19 @@
 
 void Heap::AddFinalizerReference(Thread* self, Object* object) {
   ScopedThreadStateChange tsc(self, kRunnable);
-  static Method* FinalizerReference_add =
-      java_lang_ref_FinalizerReference_->FindDirectMethod("add", "(Ljava/lang/Object;)V");
-  DCHECK(FinalizerReference_add != NULL);
   JValue args[1];
   args[0].SetL(object);
-  FinalizerReference_add->Invoke(self, NULL, args, NULL);
+  DecodeMethod(WellKnownClasses::java_lang_ref_FinalizerReference_add)->Invoke(self, NULL, args, NULL);
 }
 
 void Heap::EnqueueClearedReferences(Object** cleared) {
   DCHECK(cleared != NULL);
   if (*cleared != NULL) {
-    static Method* ReferenceQueue_add =
-        java_lang_ref_ReferenceQueue_->FindDirectMethod("add", "(Ljava/lang/ref/Reference;)V");
-    DCHECK(ReferenceQueue_add != NULL);
-
     Thread* self = Thread::Current();
     ScopedThreadStateChange tsc(self, kRunnable);
     JValue args[1];
     args[0].SetL(*cleared);
-    ReferenceQueue_add->Invoke(self, NULL, args, NULL);
+    DecodeMethod(WellKnownClasses::java_lang_ref_ReferenceQueue_add)->Invoke(self, NULL, args, NULL);
     *cleared = NULL;
   }
 }