From: Victor Stinner Date: Wed, 23 Sep 2020 12:08:38 +0000 (+0200) Subject: bpo-40170: Use inline _PyType_HasFeature() function (GH-22375) X-Git-Tag: v3.10.0a1~62 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=97d15ae1d8411b49b1fcdc0c67c51849dccce9c9;p=thirdparty%2FPython%2Fcpython.git bpo-40170: Use inline _PyType_HasFeature() function (GH-22375) Use _PyType_HasFeature() in the _io module and in structseq implementation. Replace PyType_HasFeature() opaque function call with _PyType_HasFeature() inlined function. --- diff --git a/Modules/_io/iobase.c b/Modules/_io/iobase.c index a8e55c34799b..195862df5dc0 100644 --- a/Modules/_io/iobase.c +++ b/Modules/_io/iobase.c @@ -349,8 +349,9 @@ iobase_dealloc(iobase *self) if (_PyIOBase_finalize((PyObject *) self) < 0) { /* When called from a heap type's dealloc, the type will be decref'ed on return (see e.g. subtype_dealloc in typeobject.c). */ - if (PyType_HasFeature(Py_TYPE(self), Py_TPFLAGS_HEAPTYPE)) + if (_PyType_HasFeature(Py_TYPE(self), Py_TPFLAGS_HEAPTYPE)) { Py_INCREF(Py_TYPE(self)); + } return; } _PyObject_GC_UNTRACK(self); diff --git a/Objects/structseq.c b/Objects/structseq.c index bd20ce3fbdcb..8ae8f28cbc58 100644 --- a/Objects/structseq.c +++ b/Objects/structseq.c @@ -94,7 +94,7 @@ structseq_dealloc(PyStructSequence *obj) Py_XDECREF(obj->ob_item[i]); } PyObject_GC_Del(obj); - if (PyType_GetFlags(tp) & Py_TPFLAGS_HEAPTYPE) { + if (_PyType_HasFeature(tp, Py_TPFLAGS_HEAPTYPE)) { Py_DECREF(tp); } }