// this updates the unpacked info for a new code buffer address BoundRelocation::update_addrs(address old_addr, const CodeBuffer& new_cb, const CodeBuffer& old_cb) { // Point to the relocation info Relocation *r = reloc(); // Transform the addr for the new code buffer address new_addr = old_cb.transform_address(new_cb, old_addr); // Set the transformed address set_addr( new_addr ); // Update any internal addresses r->update_addrs(new_cb, old_cb); // Apply a delta to internal pointers r->fix_relocation_at_move(new_addr - old_addr); // Return the new address return (new_addr); }
// this updates the unpacked info for a new code buffer void internal_word_Relocation::update_addrs(const CodeBuffer& new_cb, const CodeBuffer& old_cb) { _target = old_cb.transform_address(new_cb, _target); }
void static_stub_Relocation::update_addrs(const CodeBuffer& new_cb, const CodeBuffer& old_cb) { _static_call = old_cb.transform_address(new_cb, _static_call); }
// this updates the unpacked info for a new code buffer void virtual_call_Relocation::update_addrs(const CodeBuffer& new_cb, const CodeBuffer& old_cb) { _first_oop = old_cb.transform_address(new_cb, _first_oop); _oop_limit = old_cb.transform_address(new_cb, _oop_limit); }
// this updates the unpacked info for a new code buffer void breakpoint_Relocation::update_addrs(const CodeBuffer& new_cb, const CodeBuffer& old_cb) { _target = old_cb.transform_address(new_cb, _target); }