diff options
| author | Fabrice Desclaux <fabrice.desclaux@cea.fr> | 2018-02-09 10:16:58 +0100 |
|---|---|---|
| committer | Fabrice Desclaux <fabrice.desclaux@cea.fr> | 2018-02-09 10:55:39 +0100 |
| commit | c63ae8e10af699f2cd7bacd14a39112f28cf71ab (patch) | |
| tree | 32cb299fb122719f3679d38a5821d90a853cb179 /miasm2/ir/ir.py | |
| parent | 4b257d2d82c6323c6bc521017d0649b8cc7b3747 (diff) | |
| download | miasm-c63ae8e10af699f2cd7bacd14a39112f28cf71ab.tar.gz miasm-c63ae8e10af699f2cd7bacd14a39112f28cf71ab.zip | |
IRBlock: getitem/len on assignblks
Diffstat (limited to 'miasm2/ir/ir.py')
| -rw-r--r-- | miasm2/ir/ir.py | 14 |
1 files changed, 11 insertions, 3 deletions
diff --git a/miasm2/ir/ir.py b/miasm2/ir/ir.py index 8b1a1033..f31db76b 100644 --- a/miasm2/ir/ir.py +++ b/miasm2/ir/ir.py @@ -288,6 +288,14 @@ class IRBlock(object): """Iterate on assignblks""" return self._assignblks.__iter__() + def __getitem__(self, index): + """Getitem on assignblks""" + return self._assignblks.__getitem__(index) + + def __len__(self): + """Length of assignblks""" + return self._assignblks.__len__() + def is_dst_set(self): return self._dst is not None @@ -636,7 +644,7 @@ class IntermediateRepresentation(object): else: dst = m2_expr.ExprId(next_lbl, self.pc.size) - assignblk = AssignBlock({self.IRDst: dst}, irblock.assignblks[-1].instr) + assignblk = AssignBlock({self.IRDst: dst}, irblock[-1].instr) ir_blocks[index] = IRBlock(irblock.label, list(irblock.assignblks) + [assignblk]) def post_add_block(self, block, ir_blocks): @@ -790,9 +798,9 @@ class IntermediateRepresentation(object): # Find candidates jmp_blocks = set() for block in self.blocks.itervalues(): - if len(block.assignblks) != 1: + if len(block) != 1: continue - assignblk = block.assignblks[0] + assignblk = block[0] if len(assignblk) > 1: continue assert set(assignblk.keys()) == set([self.IRDst]) |