Author: Ronan Lamy <[email protected]>
Branch: buffer-cleanup
Changeset: r89947:d57c072db0e5
Date: 2017-02-05 17:02 +0000
http://bitbucket.org/pypy/pypy/changeset/d57c072db0e5/
Log: kill buffer_w_ex()
diff --git a/pypy/interpreter/baseobjspace.py b/pypy/interpreter/baseobjspace.py
--- a/pypy/interpreter/baseobjspace.py
+++ b/pypy/interpreter/baseobjspace.py
@@ -25,15 +25,6 @@
reds=['items', 'w_iterator'])
[email protected]()
-def _does_override_buffer_w(type):
- return type.buffer_w != W_Root.buffer_w
-
[email protected]()
-def _does_override_buffer_w_ex(type):
- return type.buffer_w_ex != W_Root.buffer_w_ex
-
-
class W_Root(object):
"""This is the abstract root class of all wrapped objects that live
in a 'normal' object space like StdObjSpace."""
@@ -223,15 +214,8 @@
return None
def buffer_w(self, space, flags):
- if _does_override_buffer_w_ex(self.__class__):
- return self.buffer_w_ex(space, flags)[0]
return self.__buffer_w(space, flags).buffer_w(space, flags)
- def buffer_w_ex(self, space, flags):
- if _does_override_buffer_w(self.__class__):
- return self.buffer_w(space, flags), 'B', 1
- return self.__buffer_w(space, flags).buffer_w_ex(space, flags)
-
def __buffer_w(self, space, flags):
if flags & space.BUF_WRITABLE:
w_impl = space.lookup(self, '__wbuffer__')
@@ -1469,15 +1453,6 @@
raise oefmt(self.w_TypeError,
"'%T' does not support the buffer interface", w_obj)
- def buffer_w_ex(self, w_obj, flags):
- # New buffer interface, returns a buffer based on flags
(PyObject_GetBuffer)
- # Returns extra information: (buffer, typecode, itemsize)
- try:
- return w_obj.buffer_w_ex(self, flags)
- except BufferInterfaceNotFound:
- raise oefmt(self.w_TypeError,
- "'%T' does not support the buffer interface", w_obj)
-
def readbuf_w(self, w_obj):
# Old buffer interface, returns a readonly buffer
(PyObject_AsReadBuffer)
try:
diff --git a/pypy/module/_rawffi/array.py b/pypy/module/_rawffi/array.py
--- a/pypy/module/_rawffi/array.py
+++ b/pypy/module/_rawffi/array.py
@@ -189,10 +189,6 @@
for i in range(len(value)):
ll_buffer[start + i] = value[i]
- def buffer_w_ex(self, space, flags):
- buf = self.buffer_w(space, flags)
- return buf, buf.getformat(), buf.getitemsize()
-
W_ArrayInstance.typedef = TypeDef(
'ArrayInstance',
diff --git a/pypy/module/array/interp_array.py
b/pypy/module/array/interp_array.py
--- a/pypy/module/array/interp_array.py
+++ b/pypy/module/array/interp_array.py
@@ -259,10 +259,6 @@
def buffer_w(self, space, flags):
return ArrayBuffer(self, False)
- def buffer_w_ex(self, space, flags):
- buf = self.buffer_w(space, flags)
- return buf, buf.getformat(), buf.getitemsize()
-
def descr_append(self, space, w_x):
""" append(x)
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
@@ -74,17 +74,18 @@
def setformat(self, value):
self.format = value
- def buffer_w_ex(self, space, flags):
+ def buffer_w(self, space, flags):
self._check_released(space)
space.check_buf_flags(flags, self.buf.readonly)
- return self.buf, self.getformat(), self.itemsize
+ return self.buf
@staticmethod
def descr_new_memoryview(space, w_subtype, w_object):
if isinstance(w_object, W_MemoryView):
w_object._check_released(space)
return W_MemoryView.copy(w_object)
- return W_MemoryView(*space.buffer_w_ex(w_object, space.BUF_FULL_RO))
+ buf = space.buffer_w(w_object, space.BUF_FULL_RO)
+ return W_MemoryView(buf, buf.getformat(), buf.getitemsize())
def _make_descr__cmp(name):
def descr__cmp(self, space, w_other):
diff --git a/pypy/objspace/std/test/test_memoryobject.py
b/pypy/objspace/std/test/test_memoryobject.py
--- a/pypy/objspace/std/test/test_memoryobject.py
+++ b/pypy/objspace/std/test/test_memoryobject.py
@@ -345,9 +345,6 @@
return MockBuffer(space, self.w_list, self.w_dim, self.w_fmt, \
self.w_size, self.w_strides, self.w_shape)
- def buffer_w_ex(self, space, flags):
- return self.buffer_w(space, flags), space.str_w(self.w_fmt),
space.int_w(self.w_size)
-
W_MockArray.typedef = TypeDef("MockArray",
__new__ = interp2app(W_MockArray.descr_new),
)
_______________________________________________
pypy-commit mailing list
[email protected]
https://mail.python.org/mailman/listinfo/pypy-commit