diff options
author | 2012-10-03 21:09:42 -0700 | |
---|---|---|
committer | 2012-10-04 09:27:04 -0700 | |
commit | 1f5393447b9f45be7918042d9ee7b521376de866 (patch) | |
tree | 1793cb0ae00b38a63f8cfd3a25b6cb0ee4edca16 /src/compiler.cc | |
parent | 870ea4772199f8d4cbd9a269f9093620ee50a59c (diff) |
Make PopSirt inlinable, pass self to SirtRef.
Change-Id: Ieb91526b1cb1f8644ceb3c5b99649f658f43bbc1
Diffstat (limited to 'src/compiler.cc')
-rw-r--r-- | src/compiler.cc | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/src/compiler.cc b/src/compiler.cc index edadc12b0d..10b4939bb0 100644 --- a/src/compiler.cc +++ b/src/compiler.cc @@ -1271,8 +1271,9 @@ static void InitializeClassWithoutClinit(const CompilationContext* context, ClassLoader* class_loader = soa.Decode<ClassLoader*>(context->GetClassLoader()); const char* descriptor = context->GetDexFile()->GetClassDescriptor(class_def); Class* klass = context->GetClassLinker()->FindClass(descriptor, class_loader); + Thread* self = Thread::Current(); if (klass != NULL) { - ObjectLock lock(klass); + ObjectLock lock(self, klass); if (klass->IsVerified()) { // Only try to initialize classes that were successfully verified. bool compiling_boot = Runtime::Current()->GetHeap()->GetSpaces().size() == 1; @@ -1295,8 +1296,8 @@ static void InitializeClassWithoutClinit(const CompilationContext* context, DCHECK_EQ(status, compiled_class->GetStatus()); } } - // clear any class not found or verification exceptions - Thread::Current()->ClearException(); + // Clear any class not found or verification exceptions. + self->ClearException(); } void Compiler::InitializeClassesWithoutClinit(jobject jni_class_loader, const DexFile& dex_file, |