diff options
author | Nicolas Geoffray <ngeoffray@google.com> | 2020-11-07 15:54:08 +0000 |
---|---|---|
committer | Nicolas Geoffray <ngeoffray@google.com> | 2020-11-16 17:35:42 +0000 |
commit | 07b62e3d0808cc0890717a3a589c1f7b1ac51e5c (patch) | |
tree | d15c79302f3498278e9d22c6319e8e02a3087973 /dex2oat/driver/compiler_driver.cc | |
parent | a07de551da5147f3635c665a31f262cf65647118 (diff) | |
download | art-07b62e3d0808cc0890717a3a589c1f7b1ac51e5c.tar.gz |
Change vdex format to easily access verification data per class.
See changes in vdex_file.h to see the changes in format.
Alongside, remove the redefined_classes_ set, which is not needed now
that we record verification data per class.
Test: test.py
Bug: 112676029
Change-Id: I7cc1e9ba465303f105cddec4ce86c4efaaed7e7b
Diffstat (limited to 'dex2oat/driver/compiler_driver.cc')
-rw-r--r-- | dex2oat/driver/compiler_driver.cc | 13 |
1 files changed, 0 insertions, 13 deletions
diff --git a/dex2oat/driver/compiler_driver.cc b/dex2oat/driver/compiler_driver.cc index 515e8b045f..6ea58b39e5 100644 --- a/dex2oat/driver/compiler_driver.cc +++ b/dex2oat/driver/compiler_driver.cc @@ -1892,9 +1892,6 @@ bool CompilerDriver::FastVerify(jobject jclass_loader, if (!verifier_deps->ValidateDependencies( soa.Self(), class_loader, - // This returns classpath dex files in no particular order but VerifierDeps - // does not care about the order. - classpath_classes_.GetDexFiles(), &error_msg)) { LOG(WARNING) << "Fast verification failed: " << error_msg; return false; @@ -2066,16 +2063,6 @@ class VerifyClassVisitor : public CompilationVisitor { } } else if (&klass->GetDexFile() != &dex_file) { // Skip a duplicate class (as the resolved class is from another, earlier dex file). - // Record the information that we skipped this class in the vdex. - // If the class resolved to a dex file not covered by the vdex, e.g. boot class path, - // it is considered external, dependencies on it will be recorded and the vdex will - // remain usable regardless of whether the class remains redefined or not (in the - // latter case, this class will be verify-at-runtime). - // On the other hand, if the class resolved to a dex file covered by the vdex, i.e. - // a different dex file within the same APK, this class will always be eclipsed by it. - // Recording that it was redefined is not necessary but will save class resolution - // time during fast-verify. - verifier::VerifierDeps::MaybeRecordClassRedefinition(dex_file, class_def); return; // Do not update state. } else if (!SkipClass(jclass_loader, dex_file, klass.Get())) { CHECK(klass->IsResolved()) << klass->PrettyClass(); |