summaryrefslogtreecommitdiff
path: root/python
diff options
context:
space:
mode:
authorAlex Cameron <asc@tetsuo.sh>2021-09-15 11:02:48 +1000
committerPeter LaFosse <peter@vector35.com>2021-09-15 07:58:48 -0400
commitc0fb84321d4e2fcb9e8de02c6b0faaf9d8365f37 (patch)
treee3b8e47d3a8b21ecb1c48cdc061ea41f6a9e9458 /python
parent4f51a6a7a53af3dc5e1d1b9494248ae4ab326b63 (diff)
Use new types outside of `isinstance` checks to satisfy PyRight
Diffstat (limited to 'python')
-rw-r--r--python/architecture.py18
-rw-r--r--python/lowlevelil.py12
2 files changed, 15 insertions, 15 deletions
diff --git a/python/architecture.py b/python/architecture.py
index 88ca8819..539e62af 100644
--- a/python/architecture.py
+++ b/python/architecture.py
@@ -1442,7 +1442,7 @@ class Architecture(metaclass=_ArchitectureMetaClass):
elif isinstance(reg, lowlevelil.ILRegister):
return reg.index
elif isinstance(reg, int):
- return reg
+ return RegisterIndex(reg)
raise Exception("Attempting to get register index of non-existant register")
def get_reg_stack_index(self, reg_stack:RegisterStackType) -> RegisterStackIndex:
@@ -1453,7 +1453,7 @@ class Architecture(metaclass=_ArchitectureMetaClass):
elif isinstance(reg_stack, lowlevelil.ILRegisterStack):
return reg_stack.index
elif isinstance(reg_stack, int):
- return reg_stack
+ return RegisterStackIndex(reg_stack)
raise Exception("reg_stack is not convertable to index")
def get_flag_index(self, flag:FlagType) -> FlagIndex:
@@ -1462,16 +1462,16 @@ class Architecture(metaclass=_ArchitectureMetaClass):
elif isinstance(flag, lowlevelil.ILFlag):
return flag.index
elif isinstance(flag, int):
- return flag
+ return FlagIndex(flag)
raise Exception("flag is not convertable to index")
def get_semantic_flag_class_index(self, sem_class:SemanticClassType) -> SemanticClassIndex:
if isinstance(sem_class, str):
- return self._semantic_flag_classes[sem_class]
+ return self._semantic_flag_classes[SemanticClassName(sem_class)]
elif isinstance(sem_class, lowlevelil.ILSemanticFlagClass):
return sem_class.index
elif isinstance(sem_class, int):
- return sem_class
+ return SemanticClassIndex(sem_class)
raise Exception("sem_class is not convertable to index")
def get_semantic_flag_class_name(self, class_index:SemanticClassIndex) -> SemanticClassName:
@@ -1530,11 +1530,11 @@ class Architecture(metaclass=_ArchitectureMetaClass):
:rtype: IntrinsicIndex
"""
if isinstance(intrinsic, str):
- return self._intrinsics[intrinsic]
+ return self._intrinsics[IntrinsicName(intrinsic)]
elif isinstance(intrinsic, lowlevelil.ILIntrinsic):
return intrinsic.index
elif isinstance(intrinsic, int):
- return intrinsic
+ return IntrinsicIndex(intrinsic)
raise Exception("intrinsic is not convertable to index")
def get_flag_write_type_name(self, write_type:FlagWriteTypeIndex) -> FlagWriteTypeName:
@@ -1632,7 +1632,7 @@ class Architecture(metaclass=_ArchitectureMetaClass):
operand = operands[i]
if isinstance(operand, str):
operand_list[i].constant = False
- operand_list[i].reg = self.regs[operand].index
+ operand_list[i].reg = self.regs[RegisterName(operand)].index
elif isinstance(operand, lowlevelil.ILRegister):
operand_list[i].constant = False
operand_list[i].reg = operand.index
@@ -2330,7 +2330,7 @@ class CoreArchitecture(Architecture):
operand = operands[i]
if isinstance(operand, str):
operand_list[i].constant = False
- operand_list[i].reg = self.regs[operand].index
+ operand_list[i].reg = self.regs[RegisterName(operand)].index
elif isinstance(operand, lowlevelil.ILRegister):
operand_list[i].constant = False
operand_list[i].reg = operand.index
diff --git a/python/lowlevelil.py b/python/lowlevelil.py
index f9d70196..7a0c0a18 100644
--- a/python/lowlevelil.py
+++ b/python/lowlevelil.py
@@ -98,7 +98,7 @@ class ILRegister:
def __eq__(self, other):
if isinstance(other, str) and other in self.arch.regs:
- index = self.arch.regs[other].index
+ index = self.arch.regs[architecture.RegisterName(other)].index
assert index is not None
other = ILRegister(self.arch, index)
elif not isinstance(other, self.__class__):
@@ -3046,7 +3046,7 @@ class LowLevelILFunction:
elif isinstance(operation, LowLevelILOperation):
operation = operation.value
if isinstance(flags, str):
- _flags = self.arch.get_flag_write_type_by_name(flags)
+ _flags = self.arch.get_flag_write_type_by_name(architecture.FlagWriteTypeName(flags))
elif isinstance(flags, ILFlag):
_flags = flags.index
elif flags is None:
@@ -3068,12 +3068,12 @@ class LowLevelILFunction:
if isinstance(original, LowLevelILInstruction):
original = original.expr_index
elif isinstance(original, int):
- original = original
+ original = ExpressionIndex(original)
if isinstance(new, LowLevelILInstruction):
new = new.expr_index
elif isinstance(new, int):
- new = new
+ new = ExpressionIndex(new)
core.BNReplaceLowLevelILExpr(self.handle, original, new)
@@ -3869,7 +3869,7 @@ class LowLevelILFunction:
if sem_class is not None:
class_index = self.arch.get_semantic_flag_class_index(sem_class)
assert isinstance(class_index, int)
- return self.expr(LowLevelILOperation.LLIL_FLAG_COND, cond, class_index)
+ return self.expr(LowLevelILOperation.LLIL_FLAG_COND, cond, architecture.SemanticClassIndex(class_index))
def flag_group(self, sem_group) -> ExpressionIndex:
"""
@@ -4431,7 +4431,7 @@ class LowLevelILFunction:
for i in range(len(operands)):
op = operands[i]
if isinstance(op, int):
- operand_list[i] = op
+ operand_list[i] = ExpressionIndex(op)
else:
raise Exception("Invalid operand type")
return ExpressionIndex(core.BNLowLevelILAddOperandList(self.handle, operand_list, len(operands)))