summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Jeff Hao <jeffhao@google.com> 2013-11-06 15:21:24 -0800
committer Jeff Hao <jeffhao@google.com> 2013-11-06 15:21:24 -0800
commit02b10d6f493a7f15123c01048f05dba9e4567b48 (patch)
treede3c0e75469019363ef14ab3d2a18f14f25fb6ae
parent2bd5c233bb95877eab87c897bf802ae67a35178b (diff)
Do not instrument proxy methods.
This fixes issues with traceview on Books. Bug: 11512992 Change-Id: Id67578af5e404fca51aa99860a3a61a68574ccf8
-rw-r--r--runtime/instrumentation.cc8
1 files changed, 4 insertions, 4 deletions
diff --git a/runtime/instrumentation.cc b/runtime/instrumentation.cc
index 6caad0110d..f3a42eb95b 100644
--- a/runtime/instrumentation.cc
+++ b/runtime/instrumentation.cc
@@ -56,10 +56,10 @@ bool Instrumentation::InstallStubsForClass(mirror::Class* klass) {
bool is_initialized = klass->IsInitialized();
for (size_t i = 0; i < klass->NumDirectMethods(); i++) {
mirror::ArtMethod* method = klass->GetDirectMethod(i);
- if (!method->IsAbstract()) {
+ if (!method->IsAbstract() && !method->IsProxyMethod()) {
const void* new_code;
if (uninstall) {
- if (forced_interpret_only_ && !method->IsNative() && !method->IsProxyMethod()) {
+ if (forced_interpret_only_ && !method->IsNative()) {
new_code = GetCompiledCodeToInterpreterBridge();
} else if (is_initialized || !method->IsStatic() || method->IsConstructor()) {
new_code = class_linker->GetOatCodeFor(method);
@@ -78,10 +78,10 @@ bool Instrumentation::InstallStubsForClass(mirror::Class* klass) {
}
for (size_t i = 0; i < klass->NumVirtualMethods(); i++) {
mirror::ArtMethod* method = klass->GetVirtualMethod(i);
- if (!method->IsAbstract()) {
+ if (!method->IsAbstract() && !method->IsProxyMethod()) {
const void* new_code;
if (uninstall) {
- if (forced_interpret_only_ && !method->IsNative() && !method->IsProxyMethod()) {
+ if (forced_interpret_only_ && !method->IsNative()) {
new_code = GetCompiledCodeToInterpreterBridge();
} else {
new_code = class_linker->GetOatCodeFor(method);