Author: Ronan Lamy <[email protected]>
Branch: framestate
Changeset: r74691:426f97e0e042
Date: 2014-11-22 22:23 +0000
http://bitbucket.org/pypy/pypy/changeset/426f97e0e042/

Log:    wip

diff --git a/rpython/flowspace/bytecode.py b/rpython/flowspace/bytecode.py
--- a/rpython/flowspace/bytecode.py
+++ b/rpython/flowspace/bytecode.py
@@ -133,23 +133,27 @@
             op = GenericOpcode(self.opnames[opnum], opnum, oparg, offset)
         return next_offset, op
 
+    def _iter_instr(self, code):
+        while self.offset < len(code.co_code):
+            next_offset, instr = self.read(code, self.offset)
+            yield instr
+            self.offset = next_offset
+
     def build_flow(self, code):
         contents = []
         offsets = []
         jumps = {}
         pos_map = {}
         cuts = []
-        pos = 0
+        self.offset = 0
         i = 0
-        while pos < len(code.co_code):
-            offsets.append(pos)
-            pos_map[pos] = i
-            next_pos, op = self.read(code, pos)
-            contents.append(op)
-            if op.has_jump():
-                jumps[pos] = op.arg
+        for instr in self._iter_instr(code):
+            offsets.append(self.offset)
+            pos_map[self.offset] = i
+            contents.append(instr)
+            if instr.has_jump():
+                jumps[self.offset] = instr.arg
                 cuts.append(i + 1)
-            pos = next_pos
             i += 1
         cuts.extend([pos_map[n] for n in jumps.values()])
         cuts.sort()
_______________________________________________
pypy-commit mailing list
[email protected]
https://mail.python.org/mailman/listinfo/pypy-commit

Reply via email to