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;
}
}