[Mesa-dev] [PATCH 09/13] util/list: Add list_empty and list_length functions

Neil Roberts neil at linux.intel.com
Tue May 5 11:21:55 PDT 2015

Jason Ekstrand <jason at jlekstrand.net> writes:

> +static inline bool list_empty(struct list_head *list)
> +{
> +   return list->next == list;
> +}

It would be good if list.h also included stdbool.h in order to get the
declaration of bool. However, will that cause problems on MSVC? Is the
Gallium code compiled on MSVC in general?

> +static inline unsigned list_length(struct list_head *list)
> +{
> +   unsigned length = 0;
> +   for (struct list_head *node = list->next; node != list; node = node->next)
> +      length++;
> +   return length;
> +}

Any reason not to use one of the list iterator macros here? Is it safe
to use a C99-ism outside of a macro in this header? Maybe MSVC
supports this particular C99-ism anyway.

For what it's worth, I'm strongly in favour of using these kernel-style
lists instead of exec_list. The kernel ones seem much less confusing.

- Neil

More information about the mesa-dev mailing list