src/share/vm/code/relocInfo.cpp
Index Unified diffs Context diffs Sdiffs Patch New Old Previous File Next File 8044538 Cdiff src/share/vm/code/relocInfo.cpp

src/share/vm/code/relocInfo.cpp

Print this page

        

*** 875,899 **** void internal_word_Relocation::fix_relocation_after_move(const CodeBuffer* src, CodeBuffer* dest) { address target = _target; if (target == NULL) { ! if (addr_in_const()) { ! target = new_addr_for(*(address*)addr(), src, dest); ! } else { ! target = new_addr_for(pd_get_address_from_code(), src, dest); ! } } set_value(target); } address internal_word_Relocation::target() { address target = _target; if (target == NULL) { target = pd_get_address_from_code(); } return target; } //--------------------------------------------------------------------------------- // Non-product code --- 875,899 ---- void internal_word_Relocation::fix_relocation_after_move(const CodeBuffer* src, CodeBuffer* dest) { address target = _target; if (target == NULL) { ! target = new_addr_for(this->target(), src, dest); } set_value(target); } address internal_word_Relocation::target() { address target = _target; if (target == NULL) { + if (addr_in_const()) { + target = *(address*)addr(); + } else { target = pd_get_address_from_code(); } + } return target; } //--------------------------------------------------------------------------------- // Non-product code
src/share/vm/code/relocInfo.cpp
Index Unified diffs Context diffs Sdiffs Patch New Old Previous File Next File