diff Modules/itertoolsmodule.c @ 32682:bc4dd31c73fd legacy-trunk

Exercise Jim's VISIT macro.
author Raymond Hettinger <python@rcn.com>
date Thu, 15 Jul 2004 05:32:47 +0000
parents 544f2172363d
children c2c49ee727d0
line wrap: on
line diff
--- a/Modules/itertoolsmodule.c	Thu Jul 15 04:54:57 2004 +0000
+++ b/Modules/itertoolsmodule.c	Thu Jul 15 05:32:47 2004 +0000
@@ -64,33 +64,11 @@
 static int
 groupby_traverse(groupbyobject *gbo, visitproc visit, void *arg)
 {
-	int err;
-
-	if (gbo->it) {
-		err = visit(gbo->it, arg);
-		if (err)
-			return err;
-	}
-	if (gbo->keyfunc) {
-		err = visit(gbo->keyfunc, arg);
-		if (err)
-			return err;
-	}
-	if (gbo->tgtkey) {
-		err = visit(gbo->tgtkey, arg);
-		if (err)
-			return err;
-	}
-	if (gbo->currkey) {
-		err = visit(gbo->currkey, arg);
-		if (err)
-			return err;
-	}
-	if (gbo->currvalue) {
-		err = visit(gbo->currvalue, arg);
-		if (err)
-			return err;
-	}
+	Py_VISIT(gbo->it);
+	Py_VISIT(gbo->keyfunc);
+	Py_VISIT(gbo->tgtkey);
+	Py_VISIT(gbo->currkey);
+	Py_VISIT(gbo->currvalue);
 	return 0;
 }
 
@@ -671,18 +649,8 @@
 static int
 cycle_traverse(cycleobject *lz, visitproc visit, void *arg)
 {
-	int err;
-
-	if (lz->it) {
-		err = visit(lz->it, arg);
-		if (err)
-			return err;
-	}
-	if (lz->saved) {
-		err = visit(lz->saved, arg);
-		if (err)
-			return err;
-	}
+	Py_VISIT(lz->it);
+	Py_VISIT(lz->saved);
 	return 0;
 }
 
@@ -820,18 +788,8 @@
 static int
 dropwhile_traverse(dropwhileobject *lz, visitproc visit, void *arg)
 {
-	int err;
-
-	if (lz->it) {
-		err = visit(lz->it, arg);
-		if (err)
-			return err;
-	}
-	if (lz->func) {
-		err = visit(lz->func, arg);
-		if (err)
-			return err;
-	}
+	Py_VISIT(lz->it);
+	Py_VISIT(lz->func);
 	return 0;
 }
 
@@ -971,18 +929,8 @@
 static int
 takewhile_traverse(takewhileobject *lz, visitproc visit, void *arg)
 {
-	int err;
-
-	if (lz->it) {
-		err = visit(lz->it, arg);
-		if (err)
-			return err;
-	}
-	if (lz->func) {
-		err = visit(lz->func, arg);
-		if (err)
-			return err;
-	}
+	Py_VISIT(lz->it);
+	Py_VISIT(lz->func);
 	return 0;
 }
 
@@ -1167,8 +1115,7 @@
 static int
 islice_traverse(isliceobject *lz, visitproc visit, void *arg)
 {
-	if (lz->it)
-		return visit(lz->it, arg);
+	Py_VISIT(lz->it);
 	return 0;
 }
 
@@ -1309,18 +1256,8 @@
 static int
 starmap_traverse(starmapobject *lz, visitproc visit, void *arg)
 {
-	int err;
-
-	if (lz->it) {
-		err = visit(lz->it, arg);
-		if (err)
-			return err;
-	}
-	if (lz->func) {
-		err = visit(lz->func, arg);
-		if (err)
-			return err;
-	}
+	Py_VISIT(lz->it);
+	Py_VISIT(lz->func);
 	return 0;
 }
 
@@ -1462,18 +1399,8 @@
 static int
 imap_traverse(imapobject *lz, visitproc visit, void *arg)
 {
-	int err;
-
-	if (lz->iters) {
-		err = visit(lz->iters, arg);
-		if (err)
-			return err;
-	}
-	if (lz->func) {
-		err = visit(lz->func, arg);
-		if (err)
-			return err;
-	}
+	Py_VISIT(lz->iters);
+	Py_VISIT(lz->func);
 	return 0;
 }
 
@@ -1648,8 +1575,7 @@
 static int
 chain_traverse(chainobject *lz, visitproc visit, void *arg)
 {
-	if (lz->ittuple)
-		return visit(lz->ittuple, arg);
+	Py_VISIT(lz->ittuple);
 	return 0;
 }
 
@@ -1778,18 +1704,8 @@
 static int
 ifilter_traverse(ifilterobject *lz, visitproc visit, void *arg)
 {
-	int err;
-
-	if (lz->it) {
-		err = visit(lz->it, arg);
-		if (err)
-			return err;
-	}
-	if (lz->func) {
-		err = visit(lz->func, arg);
-		if (err)
-			return err;
-	}
+	Py_VISIT(lz->it);
+	Py_VISIT(lz->func);
 	return 0;
 }
 
@@ -1929,18 +1845,8 @@
 static int
 ifilterfalse_traverse(ifilterfalseobject *lz, visitproc visit, void *arg)
 {
-	int err;
-
-	if (lz->it) {
-		err = visit(lz->it, arg);
-		if (err)
-			return err;
-	}
-	if (lz->func) {
-		err = visit(lz->func, arg);
-		if (err)
-			return err;
-	}
+	Py_VISIT(lz->it);
+	Py_VISIT(lz->func);
 	return 0;
 }
 
@@ -2199,18 +2105,8 @@
 static int
 izip_traverse(izipobject *lz, visitproc visit, void *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;
-	}
+	Py_VISIT(lz->ittuple);
+	Py_VISIT(lz->result);
 	return 0;
 }
 
@@ -2357,8 +2253,7 @@
 static int
 repeat_traverse(repeatobject *ro, visitproc visit, void *arg)
 {
-	if (ro->element)
-		return visit(ro->element, arg);
+	Py_VISIT(ro->element);
 	return 0;
 }