summaryrefslogtreecommitdiff
path: root/compiler/dex/verified_methods_data.cc
diff options
context:
space:
mode:
Diffstat (limited to 'compiler/dex/verified_methods_data.cc')
-rw-r--r--compiler/dex/verified_methods_data.cc15
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;
}