hotspot/src/share/vm/ci/ciMethod.cpp
changeset 43951 c23519aaccc1
parent 43947 a52ee13998f3
child 44738 11431bbc9549
child 46327 91576389a517
equal deleted inserted replaced
43950:5e482ff92cf5 43951:c23519aaccc1
  1426   bool invoke_through_mh_intrinsic = declared_method->is_method_handle_intrinsic() &&
  1426   bool invoke_through_mh_intrinsic = declared_method->is_method_handle_intrinsic() &&
  1427                                   !resolved_method->is_method_handle_intrinsic();
  1427                                   !resolved_method->is_method_handle_intrinsic();
  1428 
  1428 
  1429   if (!invoke_through_mh_intrinsic) {
  1429   if (!invoke_through_mh_intrinsic) {
  1430     // Method name & descriptor should stay the same.
  1430     // Method name & descriptor should stay the same.
       
  1431     // Signatures may reference unloaded types and thus they may be not strictly equal.
       
  1432     ciSymbol* declared_signature = declared_method->signature()->as_symbol();
       
  1433     ciSymbol* resolved_signature = resolved_method->signature()->as_symbol();
       
  1434 
  1431     return (declared_method->name()->equals(resolved_method->name())) &&
  1435     return (declared_method->name()->equals(resolved_method->name())) &&
  1432            (declared_method->signature()->equals(resolved_method->signature()));
  1436            (declared_signature->equals(resolved_signature));
  1433   }
  1437   }
  1434 
  1438 
  1435   ciMethod* linker = declared_method;
  1439   ciMethod* linker = declared_method;
  1436   ciMethod* target = resolved_method;
  1440   ciMethod* target = resolved_method;
  1437   // Linkers have appendix argument which is not passed to callee.
  1441   // Linkers have appendix argument which is not passed to callee.