summaryrefslogtreecommitdiffstats
path: root/Objects/tupleobject.c
diff options
context:
space:
mode:
Diffstat (limited to 'Objects/tupleobject.c')
-rw-r--r--Objects/tupleobject.c19
1 files changed, 19 insertions, 0 deletions
diff --git a/Objects/tupleobject.c b/Objects/tupleobject.c
index f89fa36..bbb56b1 100644
--- a/Objects/tupleobject.c
+++ b/Objects/tupleobject.c
@@ -420,6 +420,23 @@ tuplerepeat(a, n)
return (PyObject *) np;
}
+static int
+tupletraverse(PyTupleObject *o, visitproc visit, void *arg)
+{
+ int i, err;
+ PyObject *x;
+
+ for (i = o->ob_size; --i >= 0; ) {
+ x = o->ob_item[i];
+ if (x != NULL) {
+ err = visit(x, arg);
+ if (err)
+ return err;
+ }
+ }
+ return 0;
+}
+
static PySequenceMethods tuple_as_sequence = {
(inquiry)tuplelength, /*sq_length*/
(binaryfunc)tupleconcat, /*sq_concat*/
@@ -453,6 +470,8 @@ PyTypeObject PyTuple_Type = {
0, /*tp_setattro*/
0, /*tp_as_buffer*/
Py_TPFLAGS_DEFAULT, /*tp_flags*/
+ 0, /*tp_doc*/
+ (traverseproc)tupletraverse, /* tp_traverse */
};
/* The following function breaks the notion that tuples are immutable: