hotspot/src/share/vm/ci/ciMethod.cpp
changeset 43951 c23519aaccc1
parent 43947 a52ee13998f3
child 44738 11431bbc9549
child 46327 91576389a517
--- a/hotspot/src/share/vm/ci/ciMethod.cpp	Sat Feb 11 00:17:31 2017 +0900
+++ b/hotspot/src/share/vm/ci/ciMethod.cpp	Mon Feb 13 23:58:00 2017 +0300
@@ -1428,8 +1428,12 @@
 
   if (!invoke_through_mh_intrinsic) {
     // Method name & descriptor should stay the same.
+    // Signatures may reference unloaded types and thus they may be not strictly equal.
+    ciSymbol* declared_signature = declared_method->signature()->as_symbol();
+    ciSymbol* resolved_signature = resolved_method->signature()->as_symbol();
+
     return (declared_method->name()->equals(resolved_method->name())) &&
-           (declared_method->signature()->equals(resolved_method->signature()));
+           (declared_signature->equals(resolved_signature));
   }
 
   ciMethod* linker = declared_method;