diff options
| author | Alex Cameron <asc@tetsuo.sh> | 2021-09-08 22:54:21 +1000 |
|---|---|---|
| committer | Peter LaFosse <peter@vector35.com> | 2021-09-15 07:58:48 -0400 |
| commit | 4f51a6a7a53af3dc5e1d1b9494248ae4ab326b63 (patch) | |
| tree | ba70fbf733248f7b3bbc63cd8c675635896abcd6 /python | |
| parent | 3c69a7801b15d00a042545f7d64c1ee3fe2920f9 (diff) | |
Avoid using `isinstance` on objects returned by `NewType`
Diffstat (limited to 'python')
| -rw-r--r-- | python/architecture.py | 18 | ||||
| -rw-r--r-- | python/lowlevelil.py | 14 |
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") |
