Author: Armin Rigo <[email protected]>
Branch: 
Changeset: r67864:8ae4fae9fcc7
Date: 2013-11-06 11:10 +0100
http://bitbucket.org/pypy/pypy/changeset/8ae4fae9fcc7/

Log:    Potential fix, or at least cleaning up

diff --git a/rpython/jit/metainterp/optimizeopt/vstring.py 
b/rpython/jit/metainterp/optimizeopt/vstring.py
--- a/rpython/jit/metainterp/optimizeopt/vstring.py
+++ b/rpython/jit/metainterp/optimizeopt/vstring.py
@@ -513,19 +513,20 @@
         srcstart = self.getvalue(op.getarg(2))
         dststart = self.getvalue(op.getarg(3))
         length = self.getvalue(op.getarg(4))
+        dst_virtual = (isinstance(dst, VStringPlainValue) and dst.is_virtual())
 
         if length.is_constant() and length.box.getint() == 0:
             return
         elif ((src.is_virtual() or src.is_constant()) and
               srcstart.is_constant() and dststart.is_constant() and
               length.is_constant() and
-              (length.force_box(self).getint() < 20 or (src.is_virtual() and 
dst.is_virtual()))):
+              (length.force_box(self).getint() < 20 or (src.is_virtual() and 
dst_virtual))):
             src_start = srcstart.force_box(self).getint()
             dst_start = dststart.force_box(self).getint()
             actual_length = length.force_box(self).getint()
             for index in range(actual_length):
                 vresult = self.strgetitem(src, 
optimizer.ConstantValue(ConstInt(index + src_start)), mode)
-                if isinstance(dst, VStringPlainValue) and dst.is_virtual():
+                if dst_virtual:
                     dst.setitem(index + dst_start, vresult)
                 else:
                     op = ResOperation(mode.STRSETITEM, [
_______________________________________________
pypy-commit mailing list
[email protected]
https://mail.python.org/mailman/listinfo/pypy-commit

Reply via email to