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/class_linker.h | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) (limited to 'runtime/class_linker.h') diff --git a/runtime/class_linker.h b/runtime/class_linker.h index 5176cbd3ea..3b4e9121d0 100644 --- a/runtime/class_linker.h +++ b/runtime/class_linker.h @@ -957,9 +957,10 @@ class ClassLinker { void CreateProxyMethod(Handle klass, ArtMethod* prototype, ArtMethod* out) SHARED_REQUIRES(Locks::mutator_lock_); - // Ensures that methods have the kAccPreverified bit set. We use the kAccPreverfied bit on the - // class access flags to determine whether this has been done before. - void EnsurePreverifiedMethods(Handle c) + // Ensures that methods have the kAccSkipAccessChecks bit set. We use the + // kAccVerificationAttempted bit on the class access flags to determine whether this has been done + // before. + void EnsureSkipAccessChecksMethods(Handle c) SHARED_REQUIRES(Locks::mutator_lock_); mirror::Class* LookupClassFromBootImage(const char* descriptor) -- cgit v1.2.3-59-g8ed1b