ART: Clean up checks in CheckProxyMethod().
The non-proxy method, `np`, is always the same as the
`prototype`, so it's not really worth comparing their
members. That's been the case since
https://android-review.googlesource.com/148090 .
We've see the comparison of the return type hit a CHECK()
failure for ObjPtr<> cookie. This can happen since
https://android-review.googlesource.com/431679
if the return type is evicted from the DexCache and we go
through the slow path.
Test: m test-art-host-gtest
Test: testrunner.py --host
Bug: 30627598
Change-Id: I11f9ea86326be6ef9043ac5f170d74165ac11343
diff --git a/runtime/class_linker.cc b/runtime/class_linker.cc
index 1beb783..93b6dd1 100644
--- a/runtime/class_linker.cc
+++ b/runtime/class_linker.cc
@@ -4692,14 +4692,8 @@
// The proxy method doesn't have its own dex cache or dex file and so it steals those of its
// interface prototype. The exception to this are Constructors and the Class of the Proxy itself.
- auto* np = method->GetInterfaceMethodIfProxy(image_pointer_size_);
- CHECK_EQ(prototype->GetDeclaringClass()->GetDexCache(), np->GetDexCache());
CHECK_EQ(prototype->GetDexMethodIndex(), method->GetDexMethodIndex());
-
- CHECK_STREQ(np->GetName(), prototype->GetName());
- CHECK_STREQ(np->GetShorty(), prototype->GetShorty());
- // More complex sanity - via dex cache
- CHECK_EQ(np->ResolveReturnType(), prototype->ResolveReturnType());
+ CHECK_EQ(prototype, method->GetInterfaceMethodIfProxy(image_pointer_size_));
}
bool ClassLinker::CanWeInitializeClass(ObjPtr<mirror::Class> klass, bool can_init_statics,