[pypy-svn] r55435 - pypy/dist/pypy/objspace/flow

arigo at codespeak.net arigo at codespeak.net
Fri May 30 22:35:30 CEST 2008


Author: arigo
Date: Fri May 30 22:35:27 2008
New Revision: 55435

Modified:
   pypy/dist/pypy/objspace/flow/flowcontext.py
Log:
Avoid this pop(0) by using a deque.


Modified: pypy/dist/pypy/objspace/flow/flowcontext.py
==============================================================================
--- pypy/dist/pypy/objspace/flow/flowcontext.py	(original)
+++ pypy/dist/pypy/objspace/flow/flowcontext.py	Fri May 30 22:35:27 2008
@@ -1,3 +1,7 @@
+try:
+    import collections
+except ImportError:
+    from pypy.lib import collections    # python < 2.4
 from pypy.interpreter.executioncontext import ExecutionContext
 from pypy.interpreter.error import OperationError
 from pypy.interpreter import pyframe
@@ -209,7 +213,7 @@
         #for joinpoint in code.getjoinpoints():
         #    self.joinpoints[joinpoint] = []  # list of blocks
         initialblock = SpamBlock(FrameState(frame).copy())
-        self.pendingblocks = [initialblock]
+        self.pendingblocks = collections.deque([initialblock])
         self.graph = FunctionGraph(name or code.co_name, initialblock)
 
     make_link = Link # overridable for transition tracking
@@ -251,7 +255,7 @@
 
     def build_flow(self):
         while self.pendingblocks:
-            block = self.pendingblocks.pop(0)
+            block = self.pendingblocks.popleft()
             frame = self.create_frame()
             try:
                 self.recorder = block.patchframe(frame)



More information about the Pypy-commit mailing list