summaryrefslogtreecommitdiff
path: root/python
diff options
context:
space:
mode:
authorAlex Cameron <asc@tetsuo.sh>2021-09-08 22:54:21 +1000
committerPeter LaFosse <peter@vector35.com>2021-09-15 07:58:48 -0400
commit4f51a6a7a53af3dc5e1d1b9494248ae4ab326b63 (patch)
treeba70fbf733248f7b3bbc63cd8c675635896abcd6 /python
parent3c69a7801b15d00a042545f7d64c1ee3fe2920f9 (diff)
Avoid using `isinstance` on objects returned by `NewType`
Diffstat (limited to 'python')
-rw-r--r--python/architecture.py18
-rw-r--r--python/lowlevelil.py14
2 files changed, 15 insertions, 17 deletions
diff --git a/python/architecture.py b/python/architecture.py
index 0b233697..88ca8819 100644
--- a/python/architecture.py
+++ b/python/architecture.py
@@ -1441,7 +1441,7 @@ class Architecture(metaclass=_ArchitectureMetaClass):
log_error(traceback.format_exc())
elif isinstance(reg, lowlevelil.ILRegister):
return reg.index
- elif isinstance(reg, RegisterIndex):
+ elif isinstance(reg, int):
return reg
raise Exception("Attempting to get register index of non-existant register")
@@ -1452,7 +1452,7 @@ class Architecture(metaclass=_ArchitectureMetaClass):
return reg_stack_info.index
elif isinstance(reg_stack, lowlevelil.ILRegisterStack):
return reg_stack.index
- elif isinstance(reg_stack, RegisterStackIndex):
+ elif isinstance(reg_stack, int):
return reg_stack
raise Exception("reg_stack is not convertable to index")
@@ -1461,16 +1461,16 @@ class Architecture(metaclass=_ArchitectureMetaClass):
return self._flags[flag]
elif isinstance(flag, lowlevelil.ILFlag):
return flag.index
- elif isinstance(flag, FlagIndex):
+ elif isinstance(flag, int):
return flag
raise Exception("flag is not convertable to index")
def get_semantic_flag_class_index(self, sem_class:SemanticClassType) -> SemanticClassIndex:
- if isinstance(sem_class, SemanticClassName):
+ if isinstance(sem_class, str):
return self._semantic_flag_classes[sem_class]
elif isinstance(sem_class, lowlevelil.ILSemanticFlagClass):
return sem_class.index
- elif isinstance(sem_class, SemanticClassIndex):
+ elif isinstance(sem_class, int):
return sem_class
raise Exception("sem_class is not convertable to index")
@@ -1529,11 +1529,11 @@ class Architecture(metaclass=_ArchitectureMetaClass):
:return: the corresponding intrinsic string
:rtype: IntrinsicIndex
"""
- if isinstance(intrinsic, IntrinsicName):
+ if isinstance(intrinsic, str):
return self._intrinsics[intrinsic]
elif isinstance(intrinsic, lowlevelil.ILIntrinsic):
return intrinsic.index
- elif isinstance(intrinsic, IntrinsicIndex):
+ elif isinstance(intrinsic, int):
return intrinsic
raise Exception("intrinsic is not convertable to index")
@@ -1630,7 +1630,7 @@ class Architecture(metaclass=_ArchitectureMetaClass):
operand_list = (core.BNRegisterOrConstant * len(operands))()
for i in range(len(operands)):
operand = operands[i]
- if isinstance(operand, RegisterName):
+ if isinstance(operand, str):
operand_list[i].constant = False
operand_list[i].reg = self.regs[operand].index
elif isinstance(operand, lowlevelil.ILRegister):
@@ -2328,7 +2328,7 @@ class CoreArchitecture(Architecture):
operand_list = (core.BNRegisterOrConstant * len(operands))()
for i in range(len(operands)):
operand = operands[i]
- if isinstance(operand, RegisterName):
+ if isinstance(operand, str):
operand_list[i].constant = False
operand_list[i].reg = self.regs[operand].index
elif isinstance(operand, lowlevelil.ILRegister):
diff --git a/python/lowlevelil.py b/python/lowlevelil.py
index 2b374560..f9d70196 100644
--- a/python/lowlevelil.py
+++ b/python/lowlevelil.py
@@ -97,7 +97,7 @@ class ILRegister:
return self.index
def __eq__(self, other):
- if isinstance(other, architecture.RegisterName) and other in self.arch.regs:
+ if isinstance(other, str) and other in self.arch.regs:
index = self.arch.regs[other].index
assert index is not None
other = ILRegister(self.arch, index)
@@ -3045,7 +3045,7 @@ class LowLevelILFunction:
operation = LowLevelILOperation[operation]
elif isinstance(operation, LowLevelILOperation):
operation = operation.value
- if isinstance(flags, architecture.FlagWriteTypeName):
+ if isinstance(flags, str):
_flags = self.arch.get_flag_write_type_by_name(flags)
elif isinstance(flags, ILFlag):
_flags = flags.index
@@ -3067,12 +3067,12 @@ class LowLevelILFunction:
"""
if isinstance(original, LowLevelILInstruction):
original = original.expr_index
- elif isinstance(original, ExpressionIndex):
+ elif isinstance(original, int):
original = original
if isinstance(new, LowLevelILInstruction):
new = new.expr_index
- elif isinstance(new, ExpressionIndex):
+ elif isinstance(new, int):
new = new
core.BNReplaceLowLevelILExpr(self.handle, original, new)
@@ -3868,7 +3868,7 @@ class LowLevelILFunction:
class_index = architecture.SemanticClassIndex(0)
if sem_class is not None:
class_index = self.arch.get_semantic_flag_class_index(sem_class)
- assert isinstance(class_index, architecture.SemanticClassIndex)
+ assert isinstance(class_index, int)
return self.expr(LowLevelILOperation.LLIL_FLAG_COND, cond, class_index)
def flag_group(self, sem_group) -> ExpressionIndex:
@@ -4430,9 +4430,7 @@ class LowLevelILFunction:
operand_list = (ctypes.c_ulonglong * len(operands))()
for i in range(len(operands)):
op = operands[i]
- if isinstance(op, ExpressionIndex):
- operand_list[i] = op
- elif isinstance(op, int):
+ if isinstance(op, int):
operand_list[i] = op
else:
raise Exception("Invalid operand type")