Fix monitor visit for class initializer
We do not hold class object's lock when invoking class initializer. Therefore
it is wrong to visit it when looking for monitors owned by a thread.
Bug: 17377924
Change-Id: I7fddcdb9a554301e040c571971eec9be6cba5eda
diff --git a/runtime/monitor.cc b/runtime/monitor.cc
index 0b6e3b2..03f8687 100644
--- a/runtime/monitor.cc
+++ b/runtime/monitor.cc
@@ -999,12 +999,6 @@
return;
}
- // <clinit> is another special case. The runtime holds the class lock while calling <clinit>.
- if (m->IsClassInitializer()) {
- callback(m->GetDeclaringClass(), callback_context);
- // Fall through because there might be synchronization in the user code too.
- }
-
// Is there any reason to believe there's any synchronization in this method?
const DexFile::CodeItem* code_item = m->GetCodeItem();
CHECK(code_item != NULL) << PrettyMethod(m);