summaryrefslogtreecommitdiff
path: root/runtime/interpreter/interpreter.cc
diff options
context:
space:
mode:
author Vladimir Marko <vmarko@google.com> 2021-03-25 11:59:22 +0000
committer Vladimir Marko <vmarko@google.com> 2021-03-30 14:39:19 +0000
commit0685b981042acb57355e6742cf0ab18fbcfc4e25 (patch)
treeb9af226c72e2f173943c96c95a04349fe63134bb /runtime/interpreter/interpreter.cc
parent579db19af4f718c1aac5ca95c180a70c5114c6bd (diff)
Abort transaction when Class.forName() fails.
And update VmClassLoader.findLoadedClass implementation in UnstartedRuntime which has erroneously diverged since https://android-review.googlesource.com/145075 . Also prevent transactional interpreter from transfering control to a catch handler for aborted transactions. Also clean up Transaction::kAbortExceptionDescriptor naming and some unused parameters. Test: TransactionTest.CatchClassForNameAbortClass Test: m test-art-host-gtest Test: testrunner.py --host --optimizing Change-Id: Ibfc544283f5434efbaab238d11a6152ed2578050
Diffstat (limited to 'runtime/interpreter/interpreter.cc')
-rw-r--r--runtime/interpreter/interpreter.cc6
1 files changed, 2 insertions, 4 deletions
diff --git a/runtime/interpreter/interpreter.cc b/runtime/interpreter/interpreter.cc
index 0586ad9e76..302551f8dd 100644
--- a/runtime/interpreter/interpreter.cc
+++ b/runtime/interpreter/interpreter.cc
@@ -303,14 +303,13 @@ static inline JValue Execute(
// any value.
DCHECK(Runtime::Current()->AreNonStandardExitsEnabled());
JValue ret = JValue();
- bool res = PerformNonStandardReturn<MonitorState::kNoMonitorsLocked>(
+ PerformNonStandardReturn<MonitorState::kNoMonitorsLocked>(
self,
shadow_frame,
ret,
instrumentation,
accessor.InsSize(),
0);
- DCHECK(res) << "Expected to perform non-standard return!";
return ret;
}
if (UNLIKELY(self->IsExceptionPending())) {
@@ -321,14 +320,13 @@ static inline JValue Execute(
JValue ret = JValue();
if (UNLIKELY(shadow_frame.GetForcePopFrame())) {
DCHECK(Runtime::Current()->AreNonStandardExitsEnabled());
- bool res = PerformNonStandardReturn<MonitorState::kNoMonitorsLocked>(
+ PerformNonStandardReturn<MonitorState::kNoMonitorsLocked>(
self,
shadow_frame,
ret,
instrumentation,
accessor.InsSize(),
0);
- DCHECK(res) << "Expected to perform non-standard return!";
}
return ret;
}