Remove extra lock and racy assert in class initialization

Change-Id: Idaf68cbf888b5edc5e05877da6a20b86bdfb4762
diff --git a/src/class_linker.h b/src/class_linker.h
index 317490a..3c483a9 100644
--- a/src/class_linker.h
+++ b/src/class_linker.h
@@ -35,6 +35,7 @@
 
 class ClassLoader;
 class InternTable;
+class ObjectLock;
 
 class ClassLinker {
  public:
@@ -202,8 +203,6 @@
 
   void FinishInit();
 
-  bool InitializeClass(Class* klass, bool can_run_clinit);
-
   // For early bootstrapping by Init
   Class* AllocClass(Class* java_lang_Class, size_t class_size);
 
@@ -263,11 +262,11 @@
   // was inserted.
   bool InsertClass(const StringPiece& descriptor, Class* klass);
 
-  bool InitializeSuperClass(Class* klass, bool can_run_clinit);
-
-  void InitializeStaticFields(Class* klass);
-
+  bool InitializeClass(Class* klass, bool can_run_clinit);
+  bool WaitForInitializeClass(Class* klass, Thread* self, ObjectLock& lock);
   bool ValidateSuperClassDescriptors(const Class* klass);
+  bool InitializeSuperClass(Class* klass, bool can_run_clinit);
+  void InitializeStaticFields(Class* klass);
 
   bool HasSameDescriptorClasses(const char* descriptor,
                                 const Class* klass1,