summaryrefslogtreecommitdiff
path: root/Objects/structseq.c
diff options
context:
space:
mode:
authorPablo Galindo <Pablogsal@gmail.com>2020-05-27 10:03:38 +0100
committerGitHub <noreply@github.com>2020-05-27 02:03:38 -0700
commit1cf15af9a6f28750f37b08c028ada31d38e818dd (patch)
tree19918a3d6cc25f3f2bcd14687be59c8926825020 /Objects/structseq.c
parent404b23b85b17c84e022779f31fc89cb0ed0d37e8 (diff)
downloadcpython-git-1cf15af9a6f28750f37b08c028ada31d38e818dd.tar.gz
bpo-40217: Ensure Py_VISIT(Py_TYPE(self)) is always called for PyType_FromSpec types (reverts GH-19414) (GH-20264)
Heap types now always visit the type in tp_traverse. See added docs for details. This reverts commit 0169d3003be3d072751dd14a5c84748ab63a249f. Automerge-Triggered-By: @encukou
Diffstat (limited to 'Objects/structseq.c')
-rw-r--r--Objects/structseq.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/Objects/structseq.c b/Objects/structseq.c
index 9bdda87ae0..b17b1f99a5 100644
--- a/Objects/structseq.c
+++ b/Objects/structseq.c
@@ -70,6 +70,9 @@ PyStructSequence_GetItem(PyObject* op, Py_ssize_t i)
static int
structseq_traverse(PyStructSequence *obj, visitproc visit, void *arg)
{
+ if (Py_TYPE(obj)->tp_flags & Py_TPFLAGS_HEAPTYPE) {
+ Py_VISIT(Py_TYPE(obj));
+ }
Py_ssize_t i, size;
size = REAL_SIZE(obj);
for (i = 0; i < size; ++i) {