Check for constructor first when installing tracing stubs.
Addresses comments in
https://android-review.googlesource.com/#/c/104383/ made after the commit.
Bug: 16386215
(cherry picked from commit 5afe466c027c6ac821bf7c9a88cd7de5260a639b)
Change-Id: Ic81161d0b96a0633c4c534a93172cff59312fa61
diff --git a/runtime/instrumentation.cc b/runtime/instrumentation.cc
index d5c6e4f..47d35f3 100644
--- a/runtime/instrumentation.cc
+++ b/runtime/instrumentation.cc
@@ -121,11 +121,9 @@
// Do not change stubs for these methods.
return;
}
- std::string temp;
- // Note that the Proxy class itself is not a proxy class.
- if (strcmp(method->GetDeclaringClass()->GetDescriptor(&temp), "Ljava/lang/reflect/Proxy;") == 0 &&
- method->IsConstructor()) {
- // Do not stub Proxy.<init>.
+ // Don't stub Proxy.<init>. Note that the Proxy class itself is not a proxy class.
+ if (method->IsConstructor() &&
+ method->GetDeclaringClass()->DescriptorEquals("Ljava/lang/reflect/Proxy;")) {
return;
}
const void* new_portable_code;