From c7da1d61ba0fc38950f303813d4ba8c2d6d05c7f Mon Sep 17 00:00:00 2001 From: Nicolas Geoffray Date: Wed, 19 Apr 2017 09:36:24 +0100 Subject: Record class status after verification. The class status was recorded when doing vdex verification, or any compilation (quickening or optimizing), but not when only doing verification. bug:37446669 Test:compiler_driver_test Change-Id: Id027c7a9776ed651de570a0f3417c969c8cff9cd --- compiler/driver/compiler_driver.cc | 4 ++++ 1 file changed, 4 insertions(+) (limited to 'compiler/driver/compiler_driver.cc') diff --git a/compiler/driver/compiler_driver.cc b/compiler/driver/compiler_driver.cc index e823f67d3c..1a4452429e 100644 --- a/compiler/driver/compiler_driver.cc +++ b/compiler/driver/compiler_driver.cc @@ -2181,6 +2181,10 @@ class VerifyClassVisitor : public CompilationVisitor { CHECK(klass->ShouldVerifyAtRuntime() || klass->IsVerified() || klass->IsErroneous()) << klass->PrettyDescriptor() << ": state=" << klass->GetStatus(); + // Class has a meaningful status for the compiler now, record it. + ClassReference ref(manager_->GetDexFile(), class_def_index); + manager_->GetCompiler()->RecordClassStatus(ref, klass->GetStatus()); + // It is *very* problematic if there are verification errors in the boot classpath. For example, // we rely on things working OK without verification when the decryption dialog is brought up. // So abort in a debug build if we find this violated. -- cgit v1.2.3-59-g8ed1b