Author: Ronan Lamy <[email protected]>
Branch: PyBuffer
Changeset: r91050:6e4f2ef8a6bf
Date: 2017-04-13 01:31 +0100
http://bitbucket.org/pypy/pypy/changeset/6e4f2ef8a6bf/
Log: Fix BufferSlice.parent_index()
diff --git a/pypy/objspace/std/memoryobject.py
b/pypy/objspace/std/memoryobject.py
--- a/pypy/objspace/std/memoryobject.py
+++ b/pypy/objspace/std/memoryobject.py
@@ -598,7 +598,7 @@
self.readonly = self.buf.readonly
self.strides = buf.getstrides()[:]
itemsize = buf.getitemsize()
- self.offset = start * itemsize
+ self.start = start
self.step = step
self.strides[0] *= step
self.shape = buf.getshape()[:]
@@ -611,19 +611,20 @@
if start == stop:
return '' # otherwise, adding self.offset might make them
# out of bounds
- return self.buf.getbytes(self.offset + start, self.offset + stop,
- step, size)
+ offset = self.start * self.getitemsize()
+ return self.buf.getbytes(offset + start, offset + stop, step, size)
def setbytes(self, start, string):
if len(string) == 0:
return # otherwise, adding self.offset might make 'start'
# out of bounds
- self.buf.setbytes(self.offset + start, string)
+ offset = self.start * self.getitemsize()
+ self.buf.setbytes(offset + start, string)
def get_raw_address(self):
from rpython.rtyper.lltypesystem import rffi
ptr = self.buf.get_raw_address()
- return rffi.ptradd(ptr, self.offset)
+ return rffi.ptradd(ptr, self.start * self.getitemsize())
def getformat(self):
return self.buf.getformat()
@@ -641,7 +642,7 @@
return self.strides
def parent_index(self, idx):
- return self.offset + self.step * idx
+ return self.start + self.step * idx
def w_getitem(self, space, idx):
return self.buf.w_getitem(space, self.parent_index(idx))
_______________________________________________
pypy-commit mailing list
[email protected]
https://mail.python.org/mailman/listinfo/pypy-commit