Skip site navigation (1)Skip section navigation (2)
Date:      04 Jan 2002 22:07:58 +0100
From:      Dag-Erling Smorgrav <des@ofug.org>
To:        "Justin T. Gibbs" <gibbs@scsiguy.com>
Cc:        Julian Elischer <julian@elischer.org>, Poul-Henning Kamp <phk@critter.freebsd.dk>, Stephen McKay <mckay@thehub.com.au>, John Baldwin <jhb@FreeBSD.org>, cvs-all@FreeBSD.org, cvs-committers@FreeBSD.org, Julian Elischer <julian@FreeBSD.org>, Greg Lehey <grog@FreeBSD.org>
Subject:   Re: cvs commit: src/share/man/man3 queue.3
Message-ID:  <xzpy9jdn7td.fsf@flood.ping.uio.no>
In-Reply-To: <200201041552.g04FqWg89682@aslan.scsiguy.com>
References:  <200201041552.g04FqWg89682@aslan.scsiguy.com>

next in thread | previous in thread | raw e-mail | index | archive | help
--=-=-=

"Justin T. Gibbs" <gibbs@scsiguy.com> writes:
> Any foreach macro must test the termination condition.  If we decided
> to define that the element pointer == NULL for a complete traversal, this
> would be at most a single assignment within the the termination
> conditional.

Like the attached patch, you mean?

DES
-- 
Dag-Erling Smorgrav - des@ofug.org


--=-=-=
Content-Type: text/x-patch
Content-Disposition: attachment; filename=circleq.diff

Index: queue.h
===================================================================
RCS file: /home/ncvs/src/sys/sys/queue.h,v
retrieving revision 1.32.2.6
diff -u -r1.32.2.6 queue.h
--- queue.h	18 Dec 2001 10:09:02 -0000	1.32.2.6
+++ queue.h	4 Jan 2002 21:06:41 -0000
@@ -439,12 +439,12 @@
 
 #define	CIRCLEQ_FOREACH(var, head, field)				\
 	for ((var) = CIRCLEQ_FIRST((head));				\
-	    (var) != (void *)(head);					\
+	    (var) != (void *)(head) || ((var) = NULL);			\
 	    (var) = CIRCLEQ_NEXT((var), field))
 
 #define	CIRCLEQ_FOREACH_REVERSE(var, head, field)			\
 	for ((var) = CIRCLEQ_LAST((head));				\
-	    (var) != (void *)(head);					\
+	    (var) != (void *)(head) || ((var) = NULL);			\
 	    (var) = CIRCLEQ_PREV((var), field))
 
 #define	CIRCLEQ_INIT(head) do {						\

--=-=-=--

To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe cvs-all" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?xzpy9jdn7td.fsf>