mirror of
https://github.com/openjdk/jdk.git
synced 2025-09-21 11:34:38 +02:00
8000623: tools/javac/Diagnostics/6769027/T6769027.java crashes in PSPromotionManager::copy_to_survivor_space
Fix type of method pointer load from vtable. Reviewed-by: twisti, johnc, roland
This commit is contained in:
parent
515f1281e1
commit
2d3b78abcc
3 changed files with 3 additions and 3 deletions
|
@ -3047,9 +3047,9 @@ bool Compile::Constant::operator==(const Constant& other) {
|
|||
case T_LONG:
|
||||
case T_DOUBLE: return (_v._value.j == other._v._value.j);
|
||||
case T_OBJECT:
|
||||
case T_METADATA: return (_v._metadata == other._v._metadata);
|
||||
case T_ADDRESS: return (_v._value.l == other._v._value.l);
|
||||
case T_VOID: return (_v._value.l == other._v._value.l); // jump-table entries
|
||||
case T_METADATA: return (_v._metadata == other._v._metadata);
|
||||
default: ShouldNotReachHere();
|
||||
}
|
||||
return false;
|
||||
|
|
|
@ -3830,7 +3830,7 @@ Node* LibraryCallKit::generate_virtual_guard(Node* obj_klass,
|
|||
vtable_index*vtableEntry::size()) * wordSize +
|
||||
vtableEntry::method_offset_in_bytes();
|
||||
Node* entry_addr = basic_plus_adr(obj_klass, entry_offset);
|
||||
Node* target_call = make_load(NULL, entry_addr, TypeInstPtr::NOTNULL, T_OBJECT);
|
||||
Node* target_call = make_load(NULL, entry_addr, TypePtr::NOTNULL, T_ADDRESS);
|
||||
|
||||
// Compare the target method with the expected method (e.g., Object.hashCode).
|
||||
const TypePtr* native_call_addr = TypeMetadataPtr::make(method);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue