gh-138342: Use a common utility for visiting an object's type (GH-138343)

Add `_PyObject_VisitType` in place of `tp_traverse` functions that only visit the object's type.
This commit is contained in:
Peter Bierma 2025-09-01 12:20:33 -04:00 committed by GitHub
parent 0d02e4d7d3
commit 4f6ecd10c2
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
24 changed files with 41 additions and 203 deletions

View file

@ -746,13 +746,6 @@ signaldict_setitem(PyObject *self, PyObject *key, PyObject *value)
return 0;
}
static int
signaldict_traverse(PyObject *self, visitproc visit, void *arg)
{
Py_VISIT(Py_TYPE(self));
return 0;
}
static void
signaldict_dealloc(PyObject *self)
{
@ -845,7 +838,7 @@ static PyMethodDef signaldict_methods[] = {
static PyType_Slot signaldict_slots[] = {
{Py_tp_dealloc, signaldict_dealloc},
{Py_tp_traverse, signaldict_traverse},
{Py_tp_traverse, _PyObject_VisitType},
{Py_tp_repr, signaldict_repr},
{Py_tp_hash, PyObject_HashNotImplemented},
{Py_tp_getattro, PyObject_GenericGetAttr},
@ -2194,13 +2187,6 @@ PyDecType_New(decimal_state *state, PyTypeObject *type)
}
#define dec_alloc(st) PyDecType_New(st, (st)->PyDec_Type)
static int
dec_traverse(PyObject *dec, visitproc visit, void *arg)
{
Py_VISIT(Py_TYPE(dec));
return 0;
}
static void
dec_dealloc(PyObject *dec)
{
@ -6032,7 +6018,7 @@ static PyType_Slot dec_slots[] = {
{Py_tp_token, Py_TP_USE_SPEC},
{Py_tp_dealloc, dec_dealloc},
{Py_tp_getattro, PyObject_GenericGetAttr},
{Py_tp_traverse, dec_traverse},
{Py_tp_traverse, _PyObject_VisitType},
{Py_tp_repr, dec_repr},
{Py_tp_hash, dec_hash},
{Py_tp_str, dec_str},