diff options
| author | 2021-03-25 11:59:22 +0000 | |
|---|---|---|
| committer | 2021-03-30 14:39:19 +0000 | |
| commit | 0685b981042acb57355e6742cf0ab18fbcfc4e25 (patch) | |
| tree | b9af226c72e2f173943c96c95a04349fe63134bb /runtime/interpreter/interpreter.cc | |
| parent | 579db19af4f718c1aac5ca95c180a70c5114c6bd (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.cc | 6 |
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; } |