Compile time class initialization for classes without <clinit>
Change-Id: I4f167253fbfa16ed8f51928c5891e7a48b68e526
diff --git a/src/object.cc b/src/object.cc
index 24fe628..ea8a4bf 100644
--- a/src/object.cc
+++ b/src/object.cc
@@ -502,6 +502,7 @@
if (have_executable_code && stub != NULL) {
LOG(INFO) << "invoking " << PrettyMethod(this) << " code=" << (void*) GetCode() << " stub=" << (void*) stub;
(*stub)(this, receiver, self, args, result);
+ LOG(INFO) << "returning " << PrettyMethod(this) << " code=" << (void*) GetCode() << " stub=" << (void*) stub;
} else {
LOG(WARNING) << "Not invoking method with no associated code: " << PrettyMethod(this);
if (result != NULL) {
@@ -534,7 +535,7 @@
void Class::SetStatus(Status new_status) {
CHECK(new_status > GetStatus() || new_status == kStatusError ||
- !Runtime::Current()->IsStarted());
+ !Runtime::Current()->IsStarted()) << GetDescriptor()->ToModifiedUtf8();
CHECK(sizeof(Status) == sizeof(uint32_t));
return SetField32(OFFSET_OF_OBJECT_MEMBER(Class, status_),
new_status, false);
@@ -799,6 +800,7 @@
Method* Class::FindVirtualMethodForInterface(Method* method) {
Class* declaring_class = method->GetDeclaringClass();
+ DCHECK(declaring_class != NULL);
DCHECK(declaring_class->IsInterface());
// TODO cache to improve lookup speed
int32_t iftable_count = GetIfTableCount();