Author: Armin Rigo <ar...@tunes.org>
Branch: stringbuilder-perf
Changeset: r72034:df22a674b249
Date: 2014-06-12 14:11 +0200
http://bitbucket.org/pypy/pypy/changeset/df22a674b249/

Log:    More tweaks

diff --git a/rpython/rtyper/lltypesystem/rbuilder.py 
b/rpython/rtyper/lltypesystem/rbuilder.py
--- a/rpython/rtyper/lltypesystem/rbuilder.py
+++ b/rpython/rtyper/lltypesystem/rbuilder.py
@@ -54,19 +54,15 @@
 
     @enforceargs(None, int)
     def stringbuilder_grow(ll_builder, needed):
+        charsize = ll_builder.charsize
         try:
             needed = ovfcheck(needed + ll_builder.total_size)
+            needed = ovfcheck(needed + 63) & ~63
+            needed_chars = ovfcheck(needed * charsize)
         except OverflowError:
             raise MemoryError
-        needed += 63
-        needed &= ~63
         #
         new_piece = lltype.malloc(STRINGPIECE)
-        charsize = ll_builder.charsize
-        try:
-            needed_chars = needed * charsize
-        except OverflowError:
-            raise MemoryError
         new_piece.piece_lgt = needed_chars
         raw_ptr = lltype.malloc(rffi.CCHARP.TO, needed_chars, flavor='raw')
         new_piece.raw_ptr = raw_ptr
_______________________________________________
pypy-commit mailing list
pypy-commit@python.org
https://mail.python.org/mailman/listinfo/pypy-commit

Reply via email to