summaryrefslogtreecommitdiff
path: root/Objects/iterobject.c
diff options
context:
space:
mode:
authorThomas Wouters <thomas@python.org>2006-04-15 21:47:09 +0000
committerThomas Wouters <thomas@python.org>2006-04-15 21:47:09 +0000
commit58c4139c1d6d525e89bb2e6233422e5d2fc38e14 (patch)
treea96de885b9502d53ae464132dc15b22f9279ee2d /Objects/iterobject.c
parent2b18f142735ff17d4c6b8a4969b1b7b8a4cb83a7 (diff)
downloadcpython-58c4139c1d6d525e89bb2e6233422e5d2fc38e14.tar.gz
Use Py_VISIT in all tp_traverse methods, instead of traversing manually or
using a custom, nearly-identical macro. This probably changes how some of these functions are compiled, which may result in fractionally slower (or faster) execution. Considering the nature of traversal, visiting much of the address space in unpredictable patterns, I'd argue the code readability and maintainability is well worth it ;P
Diffstat (limited to 'Objects/iterobject.c')
-rw-r--r--Objects/iterobject.c12
1 files changed, 4 insertions, 8 deletions
diff --git a/Objects/iterobject.c b/Objects/iterobject.c
index 14cacc6938..cf839f4781 100644
--- a/Objects/iterobject.c
+++ b/Objects/iterobject.c
@@ -38,9 +38,8 @@ iter_dealloc(seqiterobject *it)
static int
iter_traverse(seqiterobject *it, visitproc visit, void *arg)
{
- if (it->it_seq == NULL)
- return 0;
- return visit(it->it_seq, arg);
+ Py_VISIT(it->it_seq);
+ return 0;
}
static PyObject *
@@ -162,11 +161,8 @@ calliter_dealloc(calliterobject *it)
static int
calliter_traverse(calliterobject *it, visitproc visit, void *arg)
{
- int err;
- if (it->it_callable != NULL && (err = visit(it->it_callable, arg)))
- return err;
- if (it->it_sentinel != NULL && (err = visit(it->it_sentinel, arg)))
- return err;
+ Py_VISIT(it->it_callable);
+ Py_VISIT(it->it_sentinel);
return 0;
}