Author: Gregor Wegberg <c...@gregorwegberg.com> Branch: gc-incminimark-pinning-improve Changeset: r76534:a95dcace656d Date: 2015-03-23 16:25 +0100 http://bitbucket.org/pypy/pypy/changeset/a95dcace656d/
Log: use pinning for input buffers in bz2 diff --git a/pypy/module/bz2/interp_bz2.py b/pypy/module/bz2/interp_bz2.py --- a/pypy/module/bz2/interp_bz2.py +++ b/pypy/module/bz2/interp_bz2.py @@ -562,10 +562,7 @@ in_bufsize = datasize with OutBuffer(self.bzs) as out: - with lltype.scoped_alloc(rffi.CCHARP.TO, in_bufsize) as in_buf: - - for i in range(datasize): - in_buf[i] = data[i] + with rffi.scoped_nonmovingbuffer(data) as in_buf: self.bzs.c_next_in = in_buf rffi.setintfield(self.bzs, 'c_avail_in', in_bufsize) @@ -663,9 +660,7 @@ in_bufsize = len(data) - with lltype.scoped_alloc(rffi.CCHARP.TO, in_bufsize) as in_buf: - for i in range(in_bufsize): - in_buf[i] = data[i] + with rffi.scoped_nonmovingbuffer(data) as in_buf: self.bzs.c_next_in = in_buf rffi.setintfield(self.bzs, 'c_avail_in', in_bufsize) @@ -716,9 +711,7 @@ with lltype.scoped_alloc(bz_stream.TO, zero=True) as bzs: in_bufsize = len(data) - with lltype.scoped_alloc(rffi.CCHARP.TO, in_bufsize) as in_buf: - for i in range(in_bufsize): - in_buf[i] = data[i] + with rffi.scoped_nonmovingbuffer(data) as in_buf: bzs.c_next_in = in_buf rffi.setintfield(bzs, 'c_avail_in', in_bufsize) @@ -758,9 +751,7 @@ return space.wrap("") with lltype.scoped_alloc(bz_stream.TO, zero=True) as bzs: - with lltype.scoped_alloc(rffi.CCHARP.TO, in_bufsize) as in_buf: - for i in range(in_bufsize): - in_buf[i] = data[i] + with rffi.scoped_nonmovingbuffer(data) as in_buf: bzs.c_next_in = in_buf rffi.setintfield(bzs, 'c_avail_in', in_bufsize) _______________________________________________ pypy-commit mailing list pypy-commit@python.org https://mail.python.org/mailman/listinfo/pypy-commit