Mercurial > hg > truffle
comparison src/share/vm/opto/library_call.cpp @ 6888:cfe522e6461c
8000623: tools/javac/Diagnostics/6769027/T6769027.java crashes in PSPromotionManager::copy_to_survivor_space
Summary: Fix type of method pointer load from vtable.
Reviewed-by: twisti, johnc, roland
author | kvn |
---|---|
date | Wed, 17 Oct 2012 12:09:32 -0700 |
parents | d804e148cff8 |
children | a3ecd773a7b9 |
comparison
equal
deleted
inserted
replaced
6861:58fbf2da3c16 | 6888:cfe522e6461c |
---|---|
3828 // Get the Method* out of the appropriate vtable entry. | 3828 // Get the Method* out of the appropriate vtable entry. |
3829 int entry_offset = (InstanceKlass::vtable_start_offset() + | 3829 int entry_offset = (InstanceKlass::vtable_start_offset() + |
3830 vtable_index*vtableEntry::size()) * wordSize + | 3830 vtable_index*vtableEntry::size()) * wordSize + |
3831 vtableEntry::method_offset_in_bytes(); | 3831 vtableEntry::method_offset_in_bytes(); |
3832 Node* entry_addr = basic_plus_adr(obj_klass, entry_offset); | 3832 Node* entry_addr = basic_plus_adr(obj_klass, entry_offset); |
3833 Node* target_call = make_load(NULL, entry_addr, TypeInstPtr::NOTNULL, T_OBJECT); | 3833 Node* target_call = make_load(NULL, entry_addr, TypePtr::NOTNULL, T_ADDRESS); |
3834 | 3834 |
3835 // Compare the target method with the expected method (e.g., Object.hashCode). | 3835 // Compare the target method with the expected method (e.g., Object.hashCode). |
3836 const TypePtr* native_call_addr = TypeMetadataPtr::make(method); | 3836 const TypePtr* native_call_addr = TypeMetadataPtr::make(method); |
3837 | 3837 |
3838 Node* native_call = makecon(native_call_addr); | 3838 Node* native_call = makecon(native_call_addr); |