summaryrefslogtreecommitdiffstats
path: root/Modules/itertoolsmodule.c
diff options
context:
space:
mode:
Diffstat (limited to 'Modules/itertoolsmodule.c')
-rw-r--r--Modules/itertoolsmodule.c16
1 files changed, 13 insertions, 3 deletions
diff --git a/Modules/itertoolsmodule.c b/Modules/itertoolsmodule.c
index 0a20c1b..fae4511 100644
--- a/Modules/itertoolsmodule.c
+++ b/Modules/itertoolsmodule.c
@@ -882,7 +882,7 @@ the following reasons:
None.
4) If a need does arise, it can be met by __builtins__.map() or by
- writing a generator.
+ writing: chain(iterable, repeat(None)).
5) Similar toolsets in Haskell and SML do not have automatic None fill-in.
*/
@@ -1574,8 +1574,18 @@ izip_dealloc(izipobject *lz)
static int
izip_traverse(izipobject *lz, visitproc visit, void *arg)
{
- if (lz->ittuple)
- return visit(lz->ittuple, arg);
+ int err;
+
+ if (lz->ittuple) {
+ err = visit(lz->ittuple, arg);
+ if (err)
+ return err;
+ }
+ if (lz->result) {
+ err = visit(lz->result, arg);
+ if (err)
+ return err;
+ }
return 0;
}