[Mesa-dev] [PATCH 2/3] exec_list: add a function to count the size of a list

Connor Abbott connor.abbott at intel.com
Wed Jul 9 16:00:25 PDT 2014


On Wednesday, July 09, 2014 03:56:41 PM Ian Romanick wrote:
> On 07/08/2014 12:20 PM, Connor Abbott wrote:
> > Signed-off-by: Connor Abbott <connor.abbott at intel.com>
> > ---
> > 
> >  src/glsl/list.h | 20 ++++++++++++++++++++
> >  1 file changed, 20 insertions(+)
> > 
> > diff --git a/src/glsl/list.h b/src/glsl/list.h
> > index ca6ee9d..68ab3fd 100644
> > --- a/src/glsl/list.h
> > +++ b/src/glsl/list.h
> > @@ -324,6 +324,8 @@ struct exec_list {
> > 
> >     const exec_node *get_tail() const;
> >     exec_node *get_tail();
> > 
> > +
> > +   unsigned get_size();
> > 
> >     void push_head(exec_node *n);
> >     void push_tail(exec_node *n);
> > 
> > @@ -405,6 +407,19 @@ exec_list_get_tail(struct exec_list *list)
> > 
> >     return !exec_list_is_empty(list) ? list->tail_pred : NULL;
> >  
> >  }
> > 
> > +static inline unsigned
> > +exec_list_get_size(struct exec_list *list)
> > +{
> > +   unsigned size = 0;
> > +
> > +   for (struct exec_node *node = list->head; node->next != NULL;
> > +	node = node->next) {
> 
> Maybe use foreach_in_list?  Since Matt was so nice to create it... :)

I would, except first of all, it's doing some typecasting we don't need to do, 
and second of all, it's defined after this point (at the end of the file) and I 
didn't bother to move it up. If you think it's worth it though, I'm fine with 
changing it...

> 
> > +      size++;
> > +   }
> > +
> > +   return size;
> > +}
> > +
> > 
> >  static inline void
> >  exec_list_push_head(struct exec_list *list, struct exec_node *n)
> >  {
> > 
> > @@ -537,6 +552,11 @@ inline exec_node *exec_list::get_tail()
> > 
> >     return exec_list_get_tail(this);
> >  
> >  }
> > 
> > +inline unsigned exec_list::get_size()
> > +{
> > +   return exec_list_get_size(this);
> > +}
> > +
> > 
> >  inline void exec_list::push_head(exec_node *n)
> >  {
> >  
> >     exec_list_push_head(this, n);



More information about the mesa-dev mailing list