Use the method descriptor for prototype and return type comparisons.

Change-Id: If2623b53e069d6f51c08849ac2798f792d465234
diff --git a/src/object.cc b/src/object.cc
index 98b6e43..2369954 100644
--- a/src/object.cc
+++ b/src/object.cc
@@ -157,12 +157,17 @@
   return ShortyCharToSize(shorty_[0]);
 }
 
+bool Method::HasSameNameAndDescriptor(const Method* that) const {
+  return (this->GetName()->Equals(that->GetName()) &&
+          this->GetDescriptor()->Equals(that->GetDescriptor()));
+}
+
 Method* Class::FindDeclaredDirectMethod(const StringPiece& name,
                                         const StringPiece& descriptor) {
   for (size_t i = 0; i < NumDirectMethods(); ++i) {
     Method* method = GetDirectMethod(i);
-    if (String::EqualsUtf8(method->GetName(), name.data()) &&
-        String::EqualsUtf8(method->GetDescriptor(), descriptor.data())) {
+    if (method->GetName()->Equals(name) &&
+        method->GetDescriptor()->Equals(descriptor)) {
       return method;
     }
   }
@@ -184,8 +189,8 @@
                                          const StringPiece& descriptor) {
   for (size_t i = 0; i < NumVirtualMethods(); ++i) {
     Method* method = GetVirtualMethod(i);
-    if (String::EqualsUtf8(method->GetName(), name.data()) &&
-        String::EqualsUtf8(method->GetDescriptor(), descriptor.data())) {
+    if (method->GetName()->Equals(name) &&
+        method->GetDescriptor()->Equals(descriptor)) {
       return method;
     }
   }