On Sun, Sep 18, 2016 at 10:27 PM, Kenneth Graunke <kenn...@whitecape.org>
wrote:

> On Thursday, September 15, 2016 9:00:35 PM PDT Jason Ekstrand wrote:
> > ---
> >  src/compiler/glsl/list.h | 9 +++++++++
> >  1 file changed, 9 insertions(+)
> >
> > diff --git a/src/compiler/glsl/list.h b/src/compiler/glsl/list.h
> > index b5b5b36..8371519 100644
> > --- a/src/compiler/glsl/list.h
> > +++ b/src/compiler/glsl/list.h
> > @@ -714,6 +714,15 @@ inline void exec_node::insert_before(exec_list
> *before)
> >          __node = __next, __next =
>     \
> >             exec_node_data(__type, (__next)->__field.next, __field))
> >
>
> Perhaps add:
>
> /* __after must be a valid list node (not the tail sentinel) */
>
> (if after is the tail sentinel, __node will be NULL, and then trying to
> obtain (__node)->__field.next will dereference that NULL pointer.)
>
> Either way, patch 1 is
> Reviewed-by: Kenneth Graunke <kenn...@whitecape.org>
>
> (I haven't thought about patch 2, sorry)
>

I wouldn't bother for the moment.  I'm pretty sure it's broken and I think
that Connor is right that trying to make block-splitting more deterministic
is more-or-less a fool's errand.


> > +#define foreach_list_typed_safe_after(__type, __node, __field,
> __after)    \
> > +   for (__type * __node =
>     \
> > +           exec_node_data(__type, (__after)->__field.next, __field),
>    \
> > +               * __next =
>     \
> > +           exec_node_data(__type, (__node)->__field.next, __field);
>     \
> > +        (__node)->__field.next != NULL;
>     \
> > +        __node = __next, __next =
>     \
> > +           exec_node_data(__type, (__next)->__field.next, __field))
> > +
> >  #define foreach_list_typed_reverse_safe(__type, __node, __field,
> __list)   \
> >     for (__type * __node =
>     \
> >             exec_node_data(__type, (__list)->tail_sentinel.prev,
> __field),  \
> >
>
>
_______________________________________________
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/mesa-dev

Reply via email to