diff options
| author | 2013-11-06 15:21:24 -0800 | |
|---|---|---|
| committer | 2013-11-06 15:21:24 -0800 | |
| commit | 02b10d6f493a7f15123c01048f05dba9e4567b48 (patch) | |
| tree | de3c0e75469019363ef14ab3d2a18f14f25fb6ae | |
| parent | 2bd5c233bb95877eab87c897bf802ae67a35178b (diff) | |
Do not instrument proxy methods.
This fixes issues with traceview on Books.
Bug: 11512992
Change-Id: Id67578af5e404fca51aa99860a3a61a68574ccf8
| -rw-r--r-- | runtime/instrumentation.cc | 8 |
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); |