diff options
Diffstat (limited to 'src/class_linker.cc')
| -rw-r--r-- | src/class_linker.cc | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/src/class_linker.cc b/src/class_linker.cc index 14f4b7e9ff..045974f8c3 100644 --- a/src/class_linker.cc +++ b/src/class_linker.cc @@ -2067,12 +2067,14 @@ bool ClassLinker::InitializeClass(Class* klass, bool can_run_clinit) { uint64_t t1 = NanoTime(); + bool success = true; { ObjectLock lock(klass); if (self->IsExceptionPending()) { WrapExceptionInInitializer(); klass->SetStatus(Class::kStatusError); + success = false; } else { RuntimeStats* global_stats = Runtime::Current()->GetStats(); RuntimeStats* thread_stats = self->GetStats(); @@ -2088,8 +2090,7 @@ bool ClassLinker::InitializeClass(Class* klass, bool can_run_clinit) { } lock.NotifyAll(); } - - return true; + return success; } bool ClassLinker::WaitForInitializeClass(Class* klass, Thread* self, ObjectLock& lock) { |