Enable sharpening, fix off by one in GetOatCodeFor(Method*)
(cherry picked from commit 0dd87f7f60470057eddf635e209496830911ef3b)
Change-Id: I53ad0b83ac74112cfd46f10fb6b74a627286ded3
diff --git a/src/class_linker.cc b/src/class_linker.cc
index 6ab849a..e26677d 100644
--- a/src/class_linker.cc
+++ b/src/class_linker.cc
@@ -1357,11 +1357,11 @@
size_t end = declaring_class->NumVirtualMethods();
bool found = false;
for (size_t i = 0; i < end; i++) {
- oat_method_index++;
if (declaring_class->GetVirtualMethod(i) == method) {
found = true;
break;
}
+ oat_method_index++;
}
CHECK(found) << "Didn't find oat method index for virtual method: " << PrettyMethod(method);
}
diff --git a/src/compiler.cc b/src/compiler.cc
index fe4f4fc..f64b1cb 100644
--- a/src/compiler.cc
+++ b/src/compiler.cc
@@ -677,7 +677,7 @@
referrer_class->CanAccessMember(methods_class,
resolved_method->GetAccessFlags())) {
vtable_idx = resolved_method->GetMethodIndex();
- const bool kEnableSharpening = false;
+ const bool kEnableSharpening = true;
if (kEnableSharpening && type == kVirtual &&
(resolved_method->IsFinal() || methods_class->IsFinal())) {
stats_->ResolvedMethod(kVirtual);