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