Author: Alex Gaynor <[email protected]>
Branch:
Changeset: r67861:20b7b762dbed
Date: 2013-11-05 17:31 -0800
http://bitbucket.org/pypy/pypy/changeset/20b7b762dbed/
Log: fix this assertion
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
@@ -517,13 +517,11 @@
return
elif ((src.is_virtual() or src.is_constant()) and
srcstart.is_constant() and dststart.is_constant() and
- length.is_constant()):
+ length.is_constant() and
+ (length.force_box(self).getint() < 20 or (src.is_virtual() and
dst.is_virtual()))):
src_start = srcstart.force_box(self).getint()
dst_start = dststart.force_box(self).getint()
- # 'length' must be <= MAX_CONST_LEN here, because 'dst' is a
- # VStringPlainValue, which is limited to MAX_CONST_LEN.
actual_length = length.force_box(self).getint()
- assert actual_length <= MAX_CONST_LEN
for index in range(actual_length):
vresult = self.strgetitem(src,
optimizer.ConstantValue(ConstInt(index + src_start)), mode)
if isinstance(dst, VStringPlainValue):
_______________________________________________
pypy-commit mailing list
[email protected]
https://mail.python.org/mailman/listinfo/pypy-commit