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,