From df707e406877e9c0426dd051c00933ebb331673e Mon Sep 17 00:00:00 2001 From: Igor Murashkin Date: Tue, 2 Feb 2016 16:56:50 -0800 Subject: runtime: Don't skip verification for -Xverify:soft-fail When forcing the interpreter into access checks mode, make sure that the regular verification is still run, giving the verifier an opportunity to throw a VerifyError. If verification would've succeeded (without -Xverify:soft-fail flag), override this and soft-fail, to force the interpreter-with-access-checks to be run instead of the normal faster interpreter. This fixes the following run-tests under the interpeter-access-checks: * 135 * 412 * 471 * 506 * 800 Bug: 22414682 Change-Id: I5cb86a8bba71c7af9361a63c0802786c852b857b --- runtime/interpreter/interpreter.cc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'runtime/interpreter/interpreter.cc') diff --git a/runtime/interpreter/interpreter.cc b/runtime/interpreter/interpreter.cc index e93bbdbf54..2559222b68 100644 --- a/runtime/interpreter/interpreter.cc +++ b/runtime/interpreter/interpreter.cc @@ -311,7 +311,7 @@ static inline JValue Execute(Thread* self, const DexFile::CodeItem* code_item, shadow_frame.GetMethod()->GetDeclaringClass()->AssertInitializedOrInitializingInThread(self); bool transaction_active = Runtime::Current()->IsActiveTransaction(); - if (LIKELY(shadow_frame.GetMethod()->IsPreverified())) { + if (LIKELY(shadow_frame.GetMethod()->SkipAccessChecks())) { // Enter the "without access check" interpreter. if (kInterpreterImplKind == kMterpImplKind) { if (transaction_active) { -- cgit v1.2.3-59-g8ed1b