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);