lkml.org 
[lkml]   [2008]   [Mar]   [14]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
From
SubjectRe: [PATCH -mm 1/5] list.h: add list_singleton
Andrew Morton wrote:
> If your usage pattern is:
>
> struct foo {
> ...
> struct list_head bar_list; /* A list of `struct bar's */
> };
>
> struct bar {
> struct list_head list; /* Attached to foo.bar_list */
> ...
> };
>
> then yes, list_singleton() makes sense.
>
> But in other usage patterns it does not:
>
> struct foo {
> struct bar *bar_list;
> ...
> };
>
> struct bar {
> struct list_head list; /* All the other bars go here */
> ...
> };
>
> In the second case, emptiness is signified by foo.bar_list==NULL. And in
> this case, code which does
>
> if (foo->bar_list && list_singleton(&foo->bar_list->list))
>
> will fail if there is a single item on the list!
>
> The second usage pattern is uncommon and list_empty() also returns
> misleading answers when list_heads are used this way.

I agreed. I assume that list_singleton() is used like as list_empty().


> So I guess we can proceed with your list_singleton(), but I'd just like to
> flag this possible confusion, see what people think..

Thank you,

--
Masami Hiramatsu

Software Engineer
Hitachi Computer Products (America) Inc.
Software Solutions Division

e-mail: mhiramat@redhat.com



\
 
 \ /
  Last update: 2008-03-14 23:27    [W:0.034 / U:6.500 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site