Author: Matti Picus <matti.pi...@gmail.com> Branch: buffer-interface2 Changeset: r87117:e5be2ebc1e87 Date: 2016-09-15 06:56 +0300 http://bitbucket.org/pypy/pypy/changeset/e5be2ebc1e87/
Log: fill in tp_as_buffer.* functions that have no dunder slot diff --git a/pypy/module/cpyext/typeobject.py b/pypy/module/cpyext/typeobject.py --- a/pypy/module/cpyext/typeobject.py +++ b/pypy/module/cpyext/typeobject.py @@ -785,6 +785,22 @@ pto.c_tp_getattro = base.c_tp_getattro if not pto.c_tp_as_buffer: pto.c_tp_as_buffer = base.c_tp_as_buffer + if base.c_tp_as_buffer: + # also inherit all the base.c_tp_as_buffer functions, since they + # do not have real __slots__ they are not filled in otherwise + # skip bf_getbuffer, which is __buffer__ + pto_as = pto.c_tp_as_buffer + base_as = base.c_tp_as_buffer + if not pto_as.c_bf_getreadbuffer: + pto_as.c_bf_getreadbuffer = base_as.c_bf_getreadbuffer + if not pto_as.c_bf_getwritebuffer: + pto_as.c_bf_getwritebuffer = base_as.c_bf_getwritebuffer + if not pto_as.c_bf_getsegcount: + pto_as.c_bf_getsegcount = base_as.c_bf_getsegcount + if not pto_as.c_bf_getcharbuffer: + pto_as.c_bf_getcharbuffer = base_as.c_bf_getcharbuffer + if not pto_as.c_bf_getcharbuffer: + pto_as.c_bf_releasebuffer = base_as.c_bf_releasebuffer finally: Py_DecRef(space, base_pyo) _______________________________________________ pypy-commit mailing list pypy-commit@python.org https://mail.python.org/mailman/listinfo/pypy-commit