[pypy-commit] pypy py3k-memoryview: SubBuffers need a specific format and itemsize.
Manuel Jacob
noreply at buildbot.pypy.org
Thu Jun 27 14:21:57 CEST 2013
Author: Manuel Jacob
Branch: py3k-memoryview
Changeset: r65036:9467784455fc
Date: 2013-06-27 14:08 +0200
http://bitbucket.org/pypy/pypy/changeset/9467784455fc/
Log: SubBuffers need a specific format and itemsize.
diff --git a/pypy/interpreter/buffer.py b/pypy/interpreter/buffer.py
--- a/pypy/interpreter/buffer.py
+++ b/pypy/interpreter/buffer.py
@@ -177,9 +177,9 @@
raise OperationError(space.w_ValueError,
space.wrap("size must be zero or positive"))
if isinstance(buffer, RWBuffer):
- buffer = RWSubBuffer(buffer, offset, size)
+ buffer = RWSubBuffer(buffer, offset, size, 'B', 1)
else:
- buffer = SubBuffer(buffer, offset, size)
+ buffer = SubBuffer(buffer, offset, size, 'B', 1)
return space.wrap(buffer)
@@ -285,12 +285,12 @@
class SubBufferMixin(object):
_mixin_ = True
- def __init__(self, buffer, offset, size):
+ def __init__(self, buffer, offset, size, format, itemsize):
self.buffer = buffer
self.offset = offset
self.size = size
- self.format = 'B'
- self.itemsize = 1
+ self.format = format
+ self.itemsize = itemsize
def getlength(self):
at_most = self.buffer.getlength() - self.offset
diff --git a/pypy/module/__builtin__/interp_memoryview.py b/pypy/module/__builtin__/interp_memoryview.py
--- a/pypy/module/__builtin__/interp_memoryview.py
+++ b/pypy/module/__builtin__/interp_memoryview.py
@@ -57,9 +57,9 @@
size = 0
buf = self.buf
if isinstance(buf, buffer.RWBuffer):
- buf = buffer.RWSubBuffer(buf, start, size)
+ buf = buffer.RWSubBuffer(buf, start, size, buf.format, buf.itemsize)
else:
- buf = buffer.SubBuffer(buf, start, size)
+ buf = buffer.SubBuffer(buf, start, size, buf.format, buf.itemsize)
return W_MemoryView(buf)
def descr_buffer(self, space):
More information about the pypy-commit
mailing list