Invoke <clinit> where necessary.
This lets us run Long.toString and friends for integral types, though
we'll need a libcore hack to avoid ThreadLocals for the time being.
Change-Id: I04bba5914f1b7d00e4917922e65b9c27302a59ff
diff --git a/src/class_linker.cc b/src/class_linker.cc
index 211b87d..b8cd891 100644
--- a/src/class_linker.cc
+++ b/src/class_linker.cc
@@ -1177,7 +1177,7 @@
bool ClassLinker::InitializeClass(Class* klass) {
CHECK(klass->GetStatus() == Class::kStatusResolved ||
- klass->GetStatus() == Class::kStatusError);
+ klass->GetStatus() == Class::kStatusError) << klass->GetStatus();
Thread* self = Thread::Current();
@@ -1270,9 +1270,7 @@
Method* clinit = klass->FindDeclaredDirectMethod("<clinit>", "()V");
if (clinit != NULL) {
- // JValue unused;
- // TODO: dvmCallMethod(self, method, NULL, &unused);
- // UNIMPLEMENTED(FATAL);
+ clinit->Invoke(self, NULL, NULL, NULL);
}
{