summaryrefslogtreecommitdiffstats
path: root/runtime/stack.cc
diff options
context:
space:
mode:
authorMingyao Yang <mingyao@google.com>2017-05-23 14:21:07 -0700
committerMingyao Yang <mingyao@google.com>2017-05-30 17:04:03 -0700
commit88ca8ba34bbf9d355035330572cc1c3624de022c (patch)
treea1447c5290ac05342077913605c48cb076e6c10c /runtime/stack.cc
parent14538fb50832ac20445af5a92003bc250f486c22 (diff)
downloadart-88ca8ba34bbf9d355035330572cc1c3624de022c.tar.gz
art-88ca8ba34bbf9d355035330572cc1c3624de022c.tar.bz2
art-88ca8ba34bbf9d355035330572cc1c3624de022c.zip
Relax an assert in AssertPcIsWithinQuickCode()
Skip the case when pc is jitted code. Bug: 36467228 Test: m -j20 test-art-host-run-test Test: test/run-test --host --prebuild --jit --no-relocate --runtime-option -Xcheck:jni --no-image --64 597-deopt-new-string Change-Id: Ie9c325e2eaf7c81f1769abacc2d2615b1c1c97cb
Diffstat (limited to 'runtime/stack.cc')
-rw-r--r--runtime/stack.cc9
1 files changed, 6 insertions, 3 deletions
diff --git a/runtime/stack.cc b/runtime/stack.cc
index 5c6eead34b..4268ba3fa6 100644
--- a/runtime/stack.cc
+++ b/runtime/stack.cc
@@ -648,6 +648,12 @@ static void AssertPcIsWithinQuickCode(ArtMethod* method, uintptr_t pc)
return;
}
+ Runtime* runtime = Runtime::Current();
+ if (runtime->UseJitCompilation() &&
+ runtime->GetJit()->GetCodeCache()->ContainsPc(reinterpret_cast<const void*>(pc))) {
+ return;
+ }
+
const void* code = method->GetEntryPointFromQuickCompiledCode();
if (code == GetQuickInstrumentationEntryPoint() || code == GetInvokeObsoleteMethodStub()) {
return;
@@ -659,9 +665,6 @@ static void AssertPcIsWithinQuickCode(ArtMethod* method, uintptr_t pc)
return;
}
- // If we are the JIT then we may have just compiled the method after the
- // IsQuickToInterpreterBridge check.
- Runtime* runtime = Runtime::Current();
if (runtime->UseJitCompilation() && runtime->GetJit()->GetCodeCache()->ContainsPc(code)) {
return;
}