[pypy-svn] r50887 - pypy/dist/pypy/module/bz2
fijal at codespeak.net
fijal at codespeak.net
Tue Jan 22 18:32:17 CET 2008
Author: fijal
Date: Tue Jan 22 18:32:16 2008
New Revision: 50887
Modified:
pypy/dist/pypy/module/bz2/interp_bz2.py
Log:
Make bz2 modules 64bit-ready
Modified: pypy/dist/pypy/module/bz2/interp_bz2.py
==============================================================================
--- pypy/dist/pypy/module/bz2/interp_bz2.py (original)
+++ pypy/dist/pypy/module/bz2/interp_bz2.py Tue Jan 22 18:32:16 2008
@@ -91,14 +91,16 @@
if BZ_CONFIG_ERROR:
if rffi.sizeof(rffi.LONG) >= 8:
def _bzs_total_out(bzs):
- return (bzs.c_total_out_hi32 << 32) + bzs.c_total_out_lo32
+ return (rffi.getintfield(bzs, 'c_total_out_hi32') << 32) + \
+ rffi.getintfield(bzs, 'c_total_out_lo32')
else:
# we can't return a long long value from here, because most
# callers wouldn't be able to handle it anyway
def _bzs_total_out(bzs):
- if bzs.c_total_out_hi32 != 0 or bzs.c_total_out_lo32 > sys.maxint:
+ if rffi.getintfield(bzs, 'c_total_out_hi32') != 0 or \
+ rffi.getintfield(bzs, 'c_total_out_lo32') > sys.maxint:
raise MemoryError
- return bzs.c_total_out_lo32
+ return rffi.getintfield(bzs, 'c_total_out_lo32')
else:
XXX # this case needs fixing (old bz2 library?)
def _bzs_total_out(bzs):
@@ -457,9 +459,9 @@
try:
self.bzs.c_next_in = in_buf
- self.bzs.c_avail_in = rffi.cast(rffi.UINT, in_bufsize)
+ rffi.setintfield(self.bzs, 'c_avail_in', in_bufsize)
self.bzs.c_next_out = out_buf
- self.bzs.c_avail_out = rffi.cast(rffi.UINT, out_bufsize)
+ rffi.setintfield(self.bzs, 'c_avail_out', out_bufsize)
temp = []
while True:
@@ -467,9 +469,9 @@
if bzerror != BZ_RUN_OK:
_catch_bz2_error(self.space, bzerror)
- if self.bzs.c_avail_in == 0:
+ if rffi.getintfield(self.bzs, 'c_avail_in') == 0:
break
- elif self.bzs.c_avail_out == 0:
+ elif rffi.getintfield(self.bzs, 'c_avail_out') == 0:
total_out = _bzs_total_out(self.bzs)
data = "".join([out_buf[i] for i in range(total_out)])
temp.append(data)
@@ -479,7 +481,7 @@
out_buf = lltype.malloc(rffi.CCHARP.TO, out_bufsize,
flavor='raw', zero=True)
self.bzs.c_next_out = out_buf
- self.bzs.c_avail_out = rffi.cast(rffi.UINT, out_bufsize)
+ rffi.setintfield(self.bzs, 'c_avail_out', out_bufsize)
if temp:
total_out = _bzs_total_out(self.bzs)
@@ -509,7 +511,7 @@
try:
self.bzs.c_next_out = out_buf
- self.bzs.c_avail_out = rffi.cast(rffi.UINT, out_bufsize)
+ rffi.setintfield(self.bzs, 'c_avail_out', out_bufsize)
total_out = _bzs_total_out(self.bzs)
@@ -521,7 +523,7 @@
elif bzerror != BZ_FINISH_OK:
_catch_bz2_error(self.space, bzerror)
- if self.bzs.c_avail_out == 0:
+ if rffi.getintfield(self.bzs, 'c_avail_out') == 0:
data = "".join([out_buf[i] for i in range(_bzs_total_out(self.bzs))])
temp.append(data)
@@ -529,12 +531,12 @@
out_buf = lltype.malloc(rffi.CCHARP.TO, out_bufsize,
flavor='raw', zero=True)
self.bzs.c_next_out = out_buf
- self.bzs.c_avail_out = rffi.cast(rffi.UINT, out_bufsize)
+ rffi.setintfield(self.bzs, 'c_avail_out', out_bufsize)
if temp:
return self.space.wrap("".join(temp))
- if self.bzs.c_avail_out:
+ if rffi.getintfield(self.bzs, 'c_avail_out'):
size = _bzs_total_out(self.bzs) - total_out
res = "".join([out_buf[i] for i in range(size)])
return self.space.wrap(res)
@@ -615,25 +617,25 @@
try:
self.bzs.c_next_in = in_buf
- self.bzs.c_avail_in = rffi.cast(rffi.UINT, in_bufsize)
+ rffi.setintfield(self.bzs, 'c_avail_in', in_bufsize)
self.bzs.c_next_out = out_buf
- self.bzs.c_avail_out = rffi.cast(rffi.UINT, out_bufsize)
+ rffi.setintfield(self.bzs, 'c_avail_out', out_bufsize)
temp = []
while True:
bzerror = BZ2_bzDecompress(self.bzs)
if bzerror == BZ_STREAM_END:
- if self.bzs.c_avail_in != 0:
- unused = [self.bzs.c_next_in[i] for i in range(self.bzs.c_avail_in)]
+ if rffi.getintfield(self.bzs, 'c_avail_in') != 0:
+ unused = [self.bzs.c_next_in[i] for i in range(rffi.getintfield(self.bzs, 'c_avail_in'))]
self.unused_data = "".join(unused)
self.running = False
break
if bzerror != BZ_OK:
_catch_bz2_error(self.space, bzerror)
- if self.bzs.c_avail_in == 0:
+ if rffi.getintfield(self.bzs, 'c_avail_in') == 0:
break
- elif self.bzs.c_avail_out == 0:
+ elif rffi.getintfield(self.bzs, 'c_avail_out') == 0:
total_out = _bzs_total_out(self.bzs)
data = "".join([out_buf[i] for i in range(total_out)])
temp.append(data)
@@ -642,7 +644,7 @@
out_bufsize = _new_buffer_size(out_bufsize)
out_buf = lltype.malloc(rffi.CCHARP.TO, out_bufsize, flavor='raw')
self.bzs.c_next_out = out_buf
- self.bzs.c_avail_out = rffi.cast(rffi.UINT, out_bufsize)
+ rffi.setintfield(self.bzs, 'c_avail_out', out_bufsize)
if temp:
total_out = _bzs_total_out(self.bzs)
@@ -693,9 +695,9 @@
try:
bzs.c_next_in = in_buf
- bzs.c_avail_in = rffi.cast(rffi.UINT, in_bufsize)
+ rffi.setintfield(bzs, 'c_avail_in', in_bufsize)
bzs.c_next_out = out_buf
- bzs.c_avail_out = rffi.cast(rffi.UINT, out_bufsize)
+ rffi.setintfield(bzs, 'c_avail_out', out_bufsize)
bzerror = BZ2_bzCompressInit(bzs, compresslevel, 0, 0)
if bzerror != BZ_OK:
@@ -711,7 +713,7 @@
BZ2_bzCompressEnd(bzs)
_catch_bz2_error(space, bzerror)
- if bzs.c_avail_out == 0:
+ if rffi.getintfield(bzs, 'c_avail_out') == 0:
data = "".join([out_buf[i] for i in range(_bzs_total_out(bzs))])
temp.append(data)
@@ -720,12 +722,12 @@
out_buf = lltype.malloc(rffi.CCHARP.TO, out_bufsize,
flavor='raw', zero=True)
bzs.c_next_out = out_buf
- bzs.c_avail_out = rffi.cast(rffi.UINT, out_bufsize)
+ rffi.setintfield(bzs, 'c_avail_out', out_bufsize)
if temp:
res = "".join(temp)
- if bzs.c_avail_out:
+ if rffi.getintfield(bzs, 'c_avail_out'):
size = _bzs_total_out(bzs) - total_out
res = "".join([out_buf[i] for i in range(size)])
else:
@@ -762,9 +764,9 @@
bzs.c_next_in = in_buf
- bzs.c_avail_in = rffi.cast(rffi.UINT, in_bufsize)
+ rffi.setintfield(bzs, 'c_avail_in', in_bufsize)
bzs.c_next_out = out_buf
- bzs.c_avail_out = rffi.cast(rffi.UINT, out_bufsize)
+ rffi.setintfield(bzs, 'c_avail_out', out_bufsize)
bzerror = BZ2_bzDecompressInit(bzs, 0, 0)
if bzerror != BZ_OK:
@@ -779,11 +781,11 @@
BZ2_bzDecompressEnd(bzs)
_catch_bz2_error(space, bzerror)
- if bzs.c_avail_in == 0:
+ if rffi.getintfield(bzs, 'c_avail_in') == 0:
BZ2_bzDecompressEnd(bzs)
raise OperationError(space.w_ValueError,
space.wrap("couldn't find end of stream"))
- elif bzs.c_avail_out == 0:
+ elif rffi.getintfield(bzs, 'c_avail_out') == 0:
total_out = _bzs_total_out(bzs)
data = "".join([out_buf[i] for i in range(total_out)])
temp.append(data)
@@ -793,7 +795,7 @@
out_buf = lltype.malloc(rffi.CCHARP.TO, out_bufsize,
flavor='raw', zero=True)
bzs.c_next_out = out_buf
- bzs.c_avail_out = rffi.cast(rffi.UINT, out_bufsize)
+ rffi.setintfield(bzs, 'c_avail_out', out_bufsize)
total_out = _bzs_total_out(bzs)
if temp:
More information about the Pypy-commit
mailing list