summaryrefslogtreecommitdiff
path: root/runtime/interpreter/interpreter.cc
diff options
context:
space:
mode:
author Alex Light <allight@google.com> 2019-03-12 15:45:47 +0000
committer Alex Light <allight@google.com> 2019-03-12 09:52:59 -0700
commit3dacdd6343ea9a6471692914c7a9dff66d6453c7 (patch)
tree5e0a3b8f99e914a7fbd49822e5c8fb1bd4709f5c /runtime/interpreter/interpreter.cc
parent939798e6a565a92e597136c589428e89c28bffd5 (diff)
Revert^4 "Remove Global deopt requirement for several jvmti events"
It was possible for the top frame of a thread to enter the artQuickToInterpreterBridge during runtime shutdown. This could be caused by the libjdwp agent. If this happens the caller of the frame will be 'null', which could cause a segv if not detected correctly. This reverts commit 939798e6a565a92e597136c589428e89c28bffd5. Reason for revert: Fixed issue that could cause crash during process shutdown. Test: ./art/tools/run-libjdwp-tests.sh --mode=host Test: ./test.py --host Change-Id: I2aad1705c761edb4ed788cec4fc8a3068d67aee5
Diffstat (limited to 'runtime/interpreter/interpreter.cc')
-rw-r--r--runtime/interpreter/interpreter.cc2
1 files changed, 1 insertions, 1 deletions
diff --git a/runtime/interpreter/interpreter.cc b/runtime/interpreter/interpreter.cc
index aa115623b3..25d48c2e06 100644
--- a/runtime/interpreter/interpreter.cc
+++ b/runtime/interpreter/interpreter.cc
@@ -289,7 +289,7 @@ static inline JValue Execute(
}
}
- if (!stay_in_interpreter) {
+ if (!stay_in_interpreter && !self->IsForceInterpreter()) {
jit::Jit* jit = Runtime::Current()->GetJit();
if (jit != nullptr) {
jit->MethodEntered(self, shadow_frame.GetMethod());