Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 15 Mar 2007 16:43:00 +0300
From:      Yar Tikhiy <yar@comp.chem.msu.su>
To:        Poul-Henning Kamp <phk@phk.freebsd.dk>
Cc:        arch@freebsd.org
Subject:   Re: <sys/queue.h> bikeshed proposal
Message-ID:  <20070315134300.GE28354@comp.chem.msu.su>
In-Reply-To: <40441.1173778685@critter.freebsd.dk>
References:  <39968.1173776514@critter.freebsd.dk> <40441.1173778685@critter.freebsd.dk>

next in thread | previous in thread | raw e-mail | index | archive | help
On Tue, Mar 13, 2007 at 09:38:05AM +0000, Poul-Henning Kamp wrote:
> In message <39968.1173776514@critter.freebsd.dk>, Poul-Henning Kamp writes:
> >
> >It has always bothered me that some of the TAILQ macros need to
> >know the struct name of the header type.

Yeah, <sys/queue.h> can present a challenge in understanding an
implementation of basic data structures and related algos. :-)
You thought that tqe_prev points to the whole entry structure when
making the patch, didn't you?

Personally, I cannot explain to myself why in the double-linked
structs the prev member points to the next member in the previous
list element and not to the previous list element itself.  Could
anybody with CS education explain merits of the current approach?
I can only see that now we have to go to the element before the
previous one for a pointer to the latter.  I'm not going to dispute
the current way of things, just curious.

-- 
Yar



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