mirror of
https://github.com/NationalSecurityAgency/ghidra.git
synced 2026-06-02 19:07:10 +08:00
GP-4508 applied critical portion of stored context fix for patch release
This commit is contained in:
+12
-9
@@ -22,7 +22,6 @@ import ghidra.program.database.register.InMemoryRangeMapAdapter;
|
|||||||
import ghidra.program.model.address.*;
|
import ghidra.program.model.address.*;
|
||||||
import ghidra.program.model.lang.*;
|
import ghidra.program.model.lang.*;
|
||||||
import ghidra.program.model.listing.ContextChangeException;
|
import ghidra.program.model.listing.ContextChangeException;
|
||||||
import ghidra.util.exception.AssertException;
|
|
||||||
import ghidra.util.exception.CancelledException;
|
import ghidra.util.exception.CancelledException;
|
||||||
import ghidra.util.task.TaskMonitor;
|
import ghidra.util.task.TaskMonitor;
|
||||||
|
|
||||||
@@ -248,8 +247,9 @@ abstract public class AbstractStoredProgramContext extends AbstractProgramContex
|
|||||||
@Override
|
@Override
|
||||||
public void remove(Address start, Address end, Register register)
|
public void remove(Address start, Address end, Register register)
|
||||||
throws ContextChangeException {
|
throws ContextChangeException {
|
||||||
if (start.getAddressSpace() != end.getAddressSpace()) {
|
if (!start.getAddressSpace().equals(end.getAddressSpace())) {
|
||||||
throw new AssertException("start and end address must be in the same address space");
|
throw new IllegalArgumentException(
|
||||||
|
"start and end address must be within the same address space");
|
||||||
}
|
}
|
||||||
RegisterValueStore values = registerValueMap.get(register.getBaseRegister());
|
RegisterValueStore values = registerValueMap.get(register.getBaseRegister());
|
||||||
if (values != null) {
|
if (values != null) {
|
||||||
@@ -259,8 +259,9 @@ abstract public class AbstractStoredProgramContext extends AbstractProgramContex
|
|||||||
}
|
}
|
||||||
|
|
||||||
// public void removeDefault(Address start, Address end, Register register) {
|
// public void removeDefault(Address start, Address end, Register register) {
|
||||||
// if (start.getAddressSpace() != end.getAddressSpace()) {
|
// if (!start.getAddressSpace().equals(end.getAddressSpace())) {
|
||||||
// throw new AssertException("start and end address must be in the same address space");
|
// throw new IllegalArgumentException(
|
||||||
|
// "start and end address must be within the same address space");
|
||||||
// }
|
// }
|
||||||
// invalidateCache();
|
// invalidateCache();
|
||||||
// RegisterValueStore values = defaultRegisterValueMap.get(register.getBaseRegister());
|
// RegisterValueStore values = defaultRegisterValueMap.get(register.getBaseRegister());
|
||||||
@@ -272,8 +273,9 @@ abstract public class AbstractStoredProgramContext extends AbstractProgramContex
|
|||||||
@Override
|
@Override
|
||||||
public void setValue(Register register, Address start, Address end, BigInteger value)
|
public void setValue(Register register, Address start, Address end, BigInteger value)
|
||||||
throws ContextChangeException {
|
throws ContextChangeException {
|
||||||
if (start.getAddressSpace() != end.getAddressSpace()) {
|
if (!start.getAddressSpace().equals(end.getAddressSpace())) {
|
||||||
throw new AssertException("start and end address must be in the same address space");
|
throw new IllegalArgumentException(
|
||||||
|
"start and end address must be within the same address space");
|
||||||
}
|
}
|
||||||
if (value == null) {
|
if (value == null) {
|
||||||
remove(start, end, register);
|
remove(start, end, register);
|
||||||
@@ -284,8 +286,9 @@ abstract public class AbstractStoredProgramContext extends AbstractProgramContex
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void setDefaultValue(RegisterValue registerValue, Address start, Address end) {
|
public void setDefaultValue(RegisterValue registerValue, Address start, Address end) {
|
||||||
if (start.getAddressSpace() != end.getAddressSpace()) {
|
if (!start.getAddressSpace().equals(end.getAddressSpace())) {
|
||||||
throw new AssertException("start and end address must be in the same address space");
|
throw new IllegalArgumentException(
|
||||||
|
"start and end address must be within the same address space");
|
||||||
}
|
}
|
||||||
Register baseRegister = registerValue.getRegister().getBaseRegister();
|
Register baseRegister = registerValue.getRegister().getBaseRegister();
|
||||||
RegisterValueStore store = defaultRegisterValueMap.get(baseRegister);
|
RegisterValueStore store = defaultRegisterValueMap.get(baseRegister);
|
||||||
|
|||||||
Reference in New Issue
Block a user