diff options
author | 2025-02-17 14:21:07 +0000 | |
---|---|---|
committer | 2025-02-18 07:19:47 -0800 | |
commit | cb3c3b2819f326d54a6bd960a9a82c5290aa69b0 (patch) | |
tree | 1b71adef87aeebc9bdf92f6c66330c3a31fa1877 /dex2oat/dex/quick_compiler_callbacks.cc | |
parent | b4d4a7c4c368272c4368db35ddffbd8fcab544fb (diff) |
Do not inline a method that was marked as un-compilable.
The compiler may have internally mark a method as not compilable. Do not
clear the verification results from the compiler callbacks, we still
need them during compilation.
Test: 860-vdex-failure
Bug: 395243275
Change-Id: I79ba61eb8a7ba6729b22c4c27fa83d8373fce03a
Diffstat (limited to 'dex2oat/dex/quick_compiler_callbacks.cc')
-rw-r--r-- | dex2oat/dex/quick_compiler_callbacks.cc | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/dex2oat/dex/quick_compiler_callbacks.cc b/dex2oat/dex/quick_compiler_callbacks.cc index 6261cc27c5..ee055fbfd9 100644 --- a/dex2oat/dex/quick_compiler_callbacks.cc +++ b/dex2oat/dex/quick_compiler_callbacks.cc @@ -45,6 +45,13 @@ void QuickCompilerCallbacks::ClassRejected(ClassReference ref) { } } +bool QuickCompilerCallbacks::IsUncompilableMethod(MethodReference ref) { + if (verification_results_ != nullptr) { + return verification_results_->IsUncompilableMethod(ref); + } + return false; +} + ClassStatus QuickCompilerCallbacks::GetPreviousClassState(ClassReference ref) { // If we don't have class unloading enabled in the compiler, we will never see class that were // previously verified. Return false to avoid overhead from the lookup in the compiler driver. |