mirror of
https://github.com/python/cpython.git
synced 2025-11-25 04:34:37 +00:00
bpo-46417: _curses uses PyStructSequence_NewType() (GH-30736)
The _curses module now creates its ncurses_version type as a heap type using PyStructSequence_NewType(), rather than using a static type. * Move _PyStructSequence_FiniType() definition to pycore_structseq.h. * test.pythoninfo: log curses.ncurses_version.
This commit is contained in:
parent
17f268a4ae
commit
1781d55eb3
10 changed files with 40 additions and 19 deletions
|
|
@ -563,7 +563,7 @@ _PyStructSequence_FiniType(PyTypeObject *type)
|
|||
|
||||
|
||||
PyTypeObject *
|
||||
PyStructSequence_NewType(PyStructSequence_Desc *desc)
|
||||
_PyStructSequence_NewType(PyStructSequence_Desc *desc, unsigned long tp_flags)
|
||||
{
|
||||
PyMemberDef *members;
|
||||
PyTypeObject *type;
|
||||
|
|
@ -596,7 +596,7 @@ PyStructSequence_NewType(PyStructSequence_Desc *desc)
|
|||
spec.name = desc->name;
|
||||
spec.basicsize = sizeof(PyStructSequence) - sizeof(PyObject *);
|
||||
spec.itemsize = sizeof(PyObject *);
|
||||
spec.flags = Py_TPFLAGS_DEFAULT | Py_TPFLAGS_HAVE_GC;
|
||||
spec.flags = Py_TPFLAGS_DEFAULT | Py_TPFLAGS_HAVE_GC | tp_flags;
|
||||
spec.slots = slots;
|
||||
|
||||
type = (PyTypeObject *)PyType_FromSpecWithBases(&spec, (PyObject *)&PyTuple_Type);
|
||||
|
|
@ -615,6 +615,13 @@ PyStructSequence_NewType(PyStructSequence_Desc *desc)
|
|||
}
|
||||
|
||||
|
||||
PyTypeObject *
|
||||
PyStructSequence_NewType(PyStructSequence_Desc *desc)
|
||||
{
|
||||
return _PyStructSequence_NewType(desc, 0);
|
||||
}
|
||||
|
||||
|
||||
/* runtime lifecycle */
|
||||
|
||||
PyStatus _PyStructSequence_InitState(PyInterpreterState *interp)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue