summaryrefslogtreecommitdiff
path: root/runtime/interpreter/interpreter.cc
diff options
context:
space:
mode:
Diffstat (limited to 'runtime/interpreter/interpreter.cc')
-rw-r--r--runtime/interpreter/interpreter.cc34
1 files changed, 16 insertions, 18 deletions
diff --git a/runtime/interpreter/interpreter.cc b/runtime/interpreter/interpreter.cc
index 42596d860e..0dc8d8bcb1 100644
--- a/runtime/interpreter/interpreter.cc
+++ b/runtime/interpreter/interpreter.cc
@@ -237,21 +237,11 @@ static JValue ExecuteSwitch(Thread* self,
JValue result_register,
bool interpret_one_instruction) REQUIRES_SHARED(Locks::mutator_lock_) {
if (Runtime::Current()->IsActiveTransaction()) {
- if (shadow_frame.GetMethod()->SkipAccessChecks()) {
- return ExecuteSwitchImpl<false, true>(
- self, accessor, shadow_frame, result_register, interpret_one_instruction);
- } else {
- return ExecuteSwitchImpl<true, true>(
- self, accessor, shadow_frame, result_register, interpret_one_instruction);
- }
+ return ExecuteSwitchImpl<true>(
+ self, accessor, shadow_frame, result_register, interpret_one_instruction);
} else {
- if (shadow_frame.GetMethod()->SkipAccessChecks()) {
- return ExecuteSwitchImpl<false, false>(
- self, accessor, shadow_frame, result_register, interpret_one_instruction);
- } else {
- return ExecuteSwitchImpl<true, false>(
- self, accessor, shadow_frame, result_register, interpret_one_instruction);
- }
+ return ExecuteSwitchImpl<false>(
+ self, accessor, shadow_frame, result_register, interpret_one_instruction);
}
}
@@ -311,8 +301,12 @@ static inline JValue Execute(
// any value.
DCHECK(Runtime::Current()->AreNonStandardExitsEnabled());
JValue ret = JValue();
- PerformNonStandardReturn<MonitorState::kNoMonitorsLocked>(
- self, shadow_frame, ret, instrumentation, accessor.InsSize());
+ PerformNonStandardReturn(self,
+ shadow_frame,
+ ret,
+ instrumentation,
+ accessor.InsSize(),
+ /* unlock_monitors= */ false);
return ret;
}
if (UNLIKELY(self->IsExceptionPending())) {
@@ -322,8 +316,12 @@ static inline JValue Execute(
JValue ret = JValue();
if (UNLIKELY(shadow_frame.GetForcePopFrame())) {
DCHECK(Runtime::Current()->AreNonStandardExitsEnabled());
- PerformNonStandardReturn<MonitorState::kNoMonitorsLocked>(
- self, shadow_frame, ret, instrumentation, accessor.InsSize());
+ PerformNonStandardReturn(self,
+ shadow_frame,
+ ret,
+ instrumentation,
+ accessor.InsSize(),
+ /* unlock_monitors= */ false);
}
return ret;
}