about summary refs log tree commit diff stats
path: root/miasm2/ir/ir.py
diff options
context:
space:
mode:
authorFabrice Desclaux <fabrice.desclaux@cea.fr>2018-02-09 10:16:58 +0100
committerFabrice Desclaux <fabrice.desclaux@cea.fr>2018-02-09 10:55:39 +0100
commitc63ae8e10af699f2cd7bacd14a39112f28cf71ab (patch)
tree32cb299fb122719f3679d38a5821d90a853cb179 /miasm2/ir/ir.py
parent4b257d2d82c6323c6bc521017d0649b8cc7b3747 (diff)
downloadmiasm-c63ae8e10af699f2cd7bacd14a39112f28cf71ab.tar.gz
miasm-c63ae8e10af699f2cd7bacd14a39112f28cf71ab.zip
IRBlock: getitem/len on assignblks
Diffstat (limited to 'miasm2/ir/ir.py')
-rw-r--r--miasm2/ir/ir.py14
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])