From: Vladimir Marko Date: Mon, 22 Jun 2015 13:35:42 +0000 (+0100) Subject: ART: Don't do pre-linked calls to the interpreter bridge. X-Git-Tag: android-x86-6.0-r1~87 X-Git-Url: http://git.osdn.net/view?a=commitdiff_plain;h=421e495c9bc53649605639dd738b8da8669147f1;p=android-x86%2Fart.git ART: Don't do pre-linked calls to the interpreter bridge. Bug: 21897404 (cherry picked from commit c08ab29796eeaa3b5863fbd987cd96fe7538d40c) Change-Id: I66531379fb4468a8ddee063e664bf6593abbe7d5 --- diff --git a/compiler/driver/compiler_driver.cc b/compiler/driver/compiler_driver.cc index e5fa54e98..19085cd50 100644 --- a/compiler/driver/compiler_driver.cc +++ b/compiler/driver/compiler_driver.cc @@ -1410,7 +1410,9 @@ void CompilerDriver::GetCodeAndMethodForDirectCall(InvokeType* type, InvokeType is_in_image = IsImageClass(method->GetDeclaringClassDescriptor()); } else { is_in_image = instruction_set_ != kX86 && instruction_set_ != kX86_64 && - heap->FindSpaceFromObject(method->GetDeclaringClass(), false)->IsImageSpace(); + heap->FindSpaceFromObject(method->GetDeclaringClass(), false)->IsImageSpace() && + !cl->IsQuickToInterpreterBridge( + reinterpret_cast(compiler_->GetEntryPointOf(method))); } if (!is_in_image) { // We can only branch directly to Methods that are resolved in the DexCache.