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
@ -3047,9 +3047,9 @@ bool Compile::Constant::operator==(const Constant& other) {
|
|||||||
case T_LONG:
|
case T_LONG:
|
||||||
case T_DOUBLE: return (_v._value.j == other._v._value.j);
|
case T_DOUBLE: return (_v._value.j == other._v._value.j);
|
||||||
case T_OBJECT:
|
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_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_VOID: return (_v._value.l == other._v._value.l); // jump-table entries
|
||||||
|
case T_METADATA: return (_v._metadata == other._v._metadata);
|
||||||
default: ShouldNotReachHere();
|
default: ShouldNotReachHere();
|
||||||
}
|
}
|
||||||
return false;
|
return false;
|
||||||
|
@ -3830,7 +3830,7 @@ Node* LibraryCallKit::generate_virtual_guard(Node* obj_klass,
|
|||||||
vtable_index*vtableEntry::size()) * wordSize +
|
vtable_index*vtableEntry::size()) * wordSize +
|
||||||
vtableEntry::method_offset_in_bytes();
|
vtableEntry::method_offset_in_bytes();
|
||||||
Node* entry_addr = basic_plus_adr(obj_klass, entry_offset);
|
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).
|
// Compare the target method with the expected method (e.g., Object.hashCode).
|
||||||
const TypePtr* native_call_addr = TypeMetadataPtr::make(method);
|
const TypePtr* native_call_addr = TypeMetadataPtr::make(method);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user