diff options
| -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); |