mirror of
https://github.com/NationalSecurityAgency/ghidra.git
synced 2025-10-03 17:59:46 +02:00
GP-4705: Cleanup
This commit is contained in:
parent
de9947336c
commit
df9f27e866
1 changed files with 15 additions and 23 deletions
|
@ -234,49 +234,41 @@ public class CreateDefaultReferenceAction extends ListingContextAction {
|
||||||
return actionOK;
|
return actionOK;
|
||||||
}
|
}
|
||||||
|
|
||||||
private Address buildDestinationAddress(AddressSpace addrSpace,
|
private Address buildDestinationAddress(AddressSpace addrSpace, Address sourceAddress,
|
||||||
Address sourceAddress, long offset) {
|
long offset) {
|
||||||
try {
|
try {
|
||||||
if ((addrSpace instanceof SegmentedAddressSpace) &&
|
if ((addrSpace instanceof SegmentedAddressSpace segmentedSpace) &&
|
||||||
(sourceAddress instanceof SegmentedAddress)) {
|
(sourceAddress instanceof SegmentedAddress segmentedAddr)) {
|
||||||
return ((SegmentedAddressSpace) addrSpace).getAddress(
|
return segmentedSpace.getAddress(segmentedAddr.getSegment(),
|
||||||
((SegmentedAddress) sourceAddress).getSegment(),
|
|
||||||
(int) (offset & 0xFFFF));
|
(int) (offset & 0xFFFF));
|
||||||
}
|
}
|
||||||
|
return addrSpace.getAddress(offset, true);
|
||||||
return addrSpace.getAddress(offset, true);
|
|
||||||
}
|
}
|
||||||
catch (AddressOutOfBoundsException ei) {
|
catch (AddressOutOfBoundsException e) {
|
||||||
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
return null;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private boolean initMemoryAddress(AddressFactory addrFactory, long offset) {
|
private boolean initMemoryAddress(AddressFactory addrFactory, long offset) {
|
||||||
// Use the context's address space.
|
|
||||||
|
// First try the context's address space
|
||||||
AddressSpace contextAddrSpace = context.getAddress().getAddressSpace();
|
AddressSpace contextAddrSpace = context.getAddress().getAddressSpace();
|
||||||
Address address = buildDestinationAddress(contextAddrSpace,
|
Address address = buildDestinationAddress(contextAddrSpace, context.getAddress(), offset);
|
||||||
context.getAddress(), offset);
|
|
||||||
if (address != null) {
|
if (address != null) {
|
||||||
memAddr = address;
|
memAddr = address;
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Try the default space.
|
// Now try the default space
|
||||||
|
|
||||||
AddressSpace defaultSpace = addrFactory.getDefaultAddressSpace();
|
AddressSpace defaultSpace = addrFactory.getDefaultAddressSpace();
|
||||||
if (contextAddrSpace != defaultSpace) {
|
if (contextAddrSpace != defaultSpace) {
|
||||||
address = buildDestinationAddress(defaultSpace, context.getAddress(),
|
address = buildDestinationAddress(defaultSpace, context.getAddress(), offset);
|
||||||
offset);
|
|
||||||
}
|
}
|
||||||
if (address != null) {
|
if (address != null) {
|
||||||
memAddr = address;
|
memAddr = address;
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Ignore.
|
|
||||||
|
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue