Author: mattip <[email protected]>
Branch: cpyext-ext
Changeset: r81596:26ff9bd62015
Date: 2016-01-05 23:15 +0200
http://bitbucket.org/pypy/pypy/changeset/26ff9bd62015/
Log: inherit tp_as... slots from base, need to test?
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
@@ -592,7 +592,6 @@
Creates an interpreter type from a PyTypeObject structure.
"""
# missing:
- # inheriting tp_as_* slots
# unsupported:
# tp_mro, tp_subclasses
py_type = rffi.cast(PyTypeObjectPtr, py_obj)
@@ -619,6 +618,13 @@
w_obj.ready()
finish_type_2(space, py_type, w_obj)
+ # inheriting tp_as_* slots
+ base = py_type.c_tp_base
+ if base:
+ if not py_type.c_tp_as_number: py_type.c_tp_as_number =
base.c_tp_as_number
+ if not py_type.c_tp_as_sequence: py_type.c_tp_as_sequence =
base.c_tp_as_sequence
+ if not py_type.c_tp_as_mapping: py_type.c_tp_as_mapping =
base.c_tp_as_mapping
+ if not py_type.c_tp_as_buffer: py_type.c_tp_as_buffer =
base.c_tp_as_buffer
state = space.fromcache(RefcountState)
state.non_heaptypes_w.append(w_obj)
_______________________________________________
pypy-commit mailing list
[email protected]
https://mail.python.org/mailman/listinfo/pypy-commit