Author: Armin Rigo <ar...@tunes.org> Branch: Changeset: r49530:5269f0ee1ed2 Date: 2011-11-18 16:48 +0100 http://bitbucket.org/pypy/pypy/changeset/5269f0ee1ed2/
Log: Fix for 612f7784a228. diff --git a/pypy/rpython/lltypesystem/rbuilder.py b/pypy/rpython/lltypesystem/rbuilder.py --- a/pypy/rpython/lltypesystem/rbuilder.py +++ b/pypy/rpython/lltypesystem/rbuilder.py @@ -123,9 +123,10 @@ def ll_build(ll_builder): final_size = ll_builder.used assert final_size >= 0 - if final_size == ll_builder.allocated: - return ll_builder.buf - return rgc.ll_shrink_array(ll_builder.buf, final_size) + if final_size < ll_builder.allocated: + ll_builder.allocated = final_size + ll_builder.buf = rgc.ll_shrink_array(ll_builder.buf, final_size) + return ll_builder.buf @classmethod def ll_is_true(cls, ll_builder): diff --git a/pypy/translator/c/test/test_newgc.py b/pypy/translator/c/test/test_newgc.py --- a/pypy/translator/c/test/test_newgc.py +++ b/pypy/translator/c/test/test_newgc.py @@ -1324,15 +1324,15 @@ s = StringBuilder(4) got = [] for i in range(50): - s.append(chr(i)) + s.append(chr(33+i)) got.append(s.build()) gc.collect() - return '/'.join(got) + return ' '.join(got) return fn def test_string_builder_multiple_builds(self): res = self.run('string_builder_multiple_builds') - assert res == '/'.join([''.join(map(chr, range(length))) + assert res == ' '.join([''.join(map(chr, range(33, 33+length))) for length in range(1, 51)]) def define_nursery_hash_base(cls): _______________________________________________ pypy-commit mailing list pypy-commit@python.org http://mail.python.org/mailman/listinfo/pypy-commit