GP-4357: Fixing FileBytes offset error

This commit is contained in:
Ryan Kurtz 2024-02-23 06:39:32 -05:00
parent 9951e54209
commit 122f1068e9
2 changed files with 3 additions and 4 deletions

View file

@ -81,8 +81,7 @@ class MemoryBlockSourceInfoDB implements MemoryBlockSourceInfo {
@Override
public long getFileBytesOffset(Address address) {
if (subBlock instanceof FileBytesSubMemoryBlock && contains(address)) {
long blockOffset = address.subtract(getMinAddress());
long subBlockOffset = blockOffset - subBlock.subBlockOffset;
long subBlockOffset = address.subtract(getMinAddress());
return ((FileBytesSubMemoryBlock) subBlock).getFileBytesOffset() + subBlockOffset;
}
return -1;

View file

@ -56,7 +56,7 @@ public class MemBlockDBTest extends AbstractGenericTest {
txID = handle.startTransaction();
addressFactory = language.getAddressFactory();
AddressMapDB addrMap = (AddressMapDB) program.getAddressMap();
AddressMapDB addrMap = program.getAddressMap();
Lock lock = new Lock("Test");
int openMode = DBConstants.CREATE;
mem = new MemoryMapDB(handle, addrMap, openMode, true, lock);
@ -396,7 +396,7 @@ public class MemBlockDBTest extends AbstractGenericTest {
sourceInfo = sourceInfos.get(1);
assertEquals(fileBytes, sourceInfo.getFileBytes().get());
assertEquals(70, sourceInfo.getFileBytesOffset());
assertEquals(70, sourceInfo.getFileBytesOffset(sourceInfo.getMinAddress()));
assertEquals(10, sourceInfo.getLength());
}