[pypy-svn] rev 2124 - pypy/trunk/src/pypy/translator

sanxiyn at codespeak.net sanxiyn at codespeak.net
Thu Oct 30 17:34:40 CET 2003


Author: sanxiyn
Date: Thu Oct 30 17:34:39 2003
New Revision: 2124

Modified:
   pypy/trunk/src/pypy/translator/annotation.py
   pypy/trunk/src/pypy/translator/transform.py
Log:
block.operations was a tuple, to make sure FlowObjSpace doesn't
try to add operations after it "closed" a block. (Armin)

But after the latest flowmodel refactoring, this idea is dropped,
so now they shall be just a list. Thus this fix.


Modified: pypy/trunk/src/pypy/translator/annotation.py
==============================================================================
--- pypy/trunk/src/pypy/translator/annotation.py	(original)
+++ pypy/trunk/src/pypy/translator/annotation.py	Thu Oct 30 17:34:39 2003
@@ -60,7 +60,7 @@
                             op = SpaceOperation('simple_call', args_w, op.result)
                             # XXX check that w_kwargs is empty
                 newops.append(op)
-            block.operations = tuple(newops)
+            block.operations = newops
 
     def simplify(self):
         self.simplify_calls()

Modified: pypy/trunk/src/pypy/translator/transform.py
==============================================================================
--- pypy/trunk/src/pypy/translator/transform.py	(original)
+++ pypy/trunk/src/pypy/translator/transform.py	Thu Oct 30 17:34:39 2003
@@ -7,7 +7,7 @@
 
 def transform_allocate(self):
     for block, ann in self.annotated.iteritems():
-        operations = block.operations
+        operations = block.operations[:]
         n_op = len(operations)
         for i in range(0, n_op-1):
             op1 = operations[i]
@@ -20,13 +20,11 @@
                 new_op = SpaceOperation('alloc_and_set',
                                         (op2.args[1], op1.args[0]),
                                         op2.result)
-                block.operations = (operations[:i] +
-                                    (new_op,) +
-                                    operations[i+2:])
+                block.operations[i:i+2] = [new_op]
 
 def transform_slice(self):
     for block, ann in self.annotated.iteritems():
-        operations = block.operations
+        operations = block.operations[:]
         n_op = len(operations)
         for i in range(0, n_op-1):
             op1 = operations[i]
@@ -38,9 +36,7 @@
                 new_op = SpaceOperation('getslice',
                                          (op2.args[0], op1.args[0], op1.args[1]),
                                          op2.result)
-                block.operations = (operations[:i] +
-                                    (new_op,) +
-                                    operations[i+2:])
+                block.operations[i:i+2] = [new_op]
 
 def transform_graph(ann):
     transform_allocate(ann)


More information about the Pypy-commit mailing list