[pypy-commit] pypy gc-minimark-pinning: fix more usages
fijal
noreply at buildbot.pypy.org
Wed May 9 23:15:03 CEST 2012
Author: Maciej Fijalkowski <fijall at gmail.com>
Branch: gc-minimark-pinning
Changeset: r54999:de5922dc19fa
Date: 2012-05-09 23:14 +0200
http://bitbucket.org/pypy/pypy/changeset/de5922dc19fa/
Log: fix more usages
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
@@ -195,7 +195,7 @@
self._allocate_chunk(initial_size)
def _allocate_chunk(self, size):
- self.raw_buf, self.gc_buf = rffi.alloc_buffer(size)
+ self.raw_buf, self.gc_buf, self.is_pinned = rffi.alloc_buffer(size)
self.current_size = size
self.bzs.c_next_out = self.raw_buf
rffi.setintfield(self.bzs, 'c_avail_out', size)
@@ -204,7 +204,8 @@
assert 0 <= chunksize <= self.current_size
raw_buf = self.raw_buf
gc_buf = self.gc_buf
- s = rffi.str_from_buffer(raw_buf, gc_buf, self.current_size, chunksize)
+ s = rffi.str_from_buffer(raw_buf, gc_buf, self.current_size, chunksize,
+ self.is_pinned)
rffi.keep_buffer_alive_until_here(raw_buf, gc_buf)
self.current_size = 0
return s
diff --git a/pypy/rlib/rsocket.py b/pypy/rlib/rsocket.py
--- a/pypy/rlib/rsocket.py
+++ b/pypy/rlib/rsocket.py
@@ -934,13 +934,10 @@
if timeout == 1:
raise SocketTimeout
elif timeout == 0:
- raw_buf, gc_buf = rffi.alloc_buffer(buffersize)
- try:
- read_bytes = _c.socketrecv(self.fd, raw_buf, buffersize, flags)
+ with rffi.scoped_alloc_buffer(buffersize) as buf:
+ read_bytes = _c.socketrecv(self.fd, buf.raw, buffersize, flags)
if read_bytes >= 0:
- return rffi.str_from_buffer(raw_buf, gc_buf, buffersize, read_bytes)
- finally:
- rffi.keep_buffer_alive_until_here(raw_buf, gc_buf)
+ return buf.str(read_bytes)
raise self.error_handler()
def recvinto(self, rwbuffer, nbytes, flags=0):
@@ -956,11 +953,11 @@
if timeout == 1:
raise SocketTimeout
elif timeout == 0:
- raw_buf, gc_buf = rffi.alloc_buffer(buffersize)
- try:
+ with rffi.scoped_alloc_buffer(buffersize) as buf:
address, addr_p, addrlen_p = self._addrbuf()
try:
- read_bytes = _c.recvfrom(self.fd, raw_buf, buffersize, flags,
+ read_bytes = _c.recvfrom(self.fd, buf.raw,
+ buffersize, flags,
addr_p, addrlen_p)
addrlen = rffi.cast(lltype.Signed, addrlen_p[0])
finally:
@@ -971,10 +968,7 @@
address.addrlen = addrlen
else:
address = None
- data = rffi.str_from_buffer(raw_buf, gc_buf, buffersize, read_bytes)
- return (data, address)
- finally:
- rffi.keep_buffer_alive_until_here(raw_buf, gc_buf)
+ return (buf.str(read_bytes), address)
raise self.error_handler()
def recvfrom_into(self, rwbuffer, nbytes, flags=0):
More information about the pypy-commit
mailing list