More fixes to make new Class status work properly.

InitializeClass should only check for an exception from VerifyClass if
the class is erroneous. Also, the status ordering was changed so that
kStatusRetryVerificationAtRuntime is after kStatusVerifying.

Change-Id: Ibbfb1696dfee88cb8fcef5673f7e353f30a8fe5a
diff --git a/src/class_linker.cc b/src/class_linker.cc
index e2ae0f3..3280410 100644
--- a/src/class_linker.cc
+++ b/src/class_linker.cc
@@ -1967,7 +1967,8 @@
     return;
   }
 
-  CHECK(klass->IsResolved()) << PrettyClass(klass);
+  CHECK(klass->GetStatus() == Class::kStatusResolved ||
+        klass->GetStatus() == Class::kStatusRetryVerificationAtRuntime) << PrettyClass(klass);
   klass->SetStatus(Class::kStatusVerifying);
 
   // Verify super class
@@ -2361,7 +2362,9 @@
         klass->GetStatus() == Class::kStatusRetryVerificationAtRuntime) {
       VerifyClass(klass);
       if (klass->GetStatus() != Class::kStatusVerified) {
-        CHECK(self->IsExceptionPending());
+        if (klass->GetStatus() == Class::kStatusError) {
+          CHECK(self->IsExceptionPending());
+        }
         return false;
       }
     }