diff options
Diffstat (limited to 'compiler/dex/verified_methods_data.cc')
| -rw-r--r-- | compiler/dex/verified_methods_data.cc | 15 |
1 files changed, 8 insertions, 7 deletions
diff --git a/compiler/dex/verified_methods_data.cc b/compiler/dex/verified_methods_data.cc index 454b92cd85..e5b2b036a2 100644 --- a/compiler/dex/verified_methods_data.cc +++ b/compiler/dex/verified_methods_data.cc @@ -78,6 +78,14 @@ bool VerifiedMethodsData::ProcessVerifiedMethod(verifier::MethodVerifier* method VerifyGcMap(method_verifier, *dex_gc_map); } SetDexGcMap(ref, dex_gc_map); + + // TODO: move this out when DEX-to-DEX supports devirtualization. + if (method_verifier->HasVirtualOrInterfaceInvokes()) { + PcToConcreteMethodMap* pc_to_concrete_method = GenerateDevirtMap(method_verifier); + if (pc_to_concrete_method != NULL) { + SetDevirtMap(ref, pc_to_concrete_method); + } + } } if (method_verifier->HasCheckCasts()) { @@ -86,13 +94,6 @@ bool VerifiedMethodsData::ProcessVerifiedMethod(verifier::MethodVerifier* method SetSafeCastMap(ref, method_to_safe_casts); } } - - if (method_verifier->HasVirtualOrInterfaceInvokes()) { - PcToConcreteMethodMap* pc_to_concrete_method = GenerateDevirtMap(method_verifier); - if (pc_to_concrete_method != NULL) { - SetDevirtMap(ref, pc_to_concrete_method); - } - } return true; } |