On Wed, 24 May 2000, Garrett Wollman wrote:

> <<On Tue, 23 May 2000 20:27:10 -0700, Jake Burkholder <[EMAIL PROTECTED]> said:
> 
> > I've just built a fresh world here; if you use the cvs-crypto from
> > internat, it may be broken.  I submitted a patch to Mark Murray which
> > should fix it, here it is again just in case:
> 
> I still think (and am going on record) that this is a REALLY, REALLY
> BAD idea.

Especially since most of the queue macros require the type to be a struct
to work.  E.g.:

#define SLIST_REMOVE(head, elm, type, field) do {                       \
                                ^^^^ a supposedly general type
        if (SLIST_FIRST((head)) == (elm)) {                             \
                SLIST_REMOVE_HEAD((head), field);                       \
        }                                                               \
        else {                                                          \
                type *curelm = SLIST_FIRST((head));                     \
                while (SLIST_NEXT(curelm, field) != (elm))              \
                       ^^^^^^^^^^^^^^^^^^^^^^^^^

I objected to a recent commit hiding the fact that this is
"(elm)->field.sle_next".  Anyway, curelm must be a pointer to a struct.
Not just any struct; the struct must contain a "field" declared using
SLIST_ENTRY().

Bruce



To Unsubscribe: send mail to [EMAIL PROTECTED]
with "unsubscribe freebsd-current" in the body of the message

Reply via email to