[pacman-dev] alpm_list_count gives 1 on an list created by alpm_list_new

Xavier shiningxc at gmail.com
Sat Feb 23 15:03:04 EST 2008


On Sat, Feb 23, 2008 at 08:36:24PM +0100, Nagy Gabor wrote:
> > Yes, this is not nice, but needed (we doesn't have alpm_list_node_t or
> > alpm_list_head_t  struct): list == NULL is not allowed [otherwise
> > list->data or list->next would lead to a segfault.]
> > Workaround: alpm_list_count could count nodes with not-NULL data
> > pointers only.
> > 
> > Btw, this also indicates a more serious bug: as I see, if you remove
> > the only element from a 1-element list, alpm_list_remove() will
> > return with NULL, with is not a valid list pointer...
> > 
> > Bye
> 
> Correction of  myself: since we usually use
> 'for(i = list; i; i = i->next)',
> i==NULL is acceptable.
> So IMHO list = alpm_list_new() <=> list = NULL; would be better; and
> rename the current alpm_list_new() to _internal_ alpm_list_node_new()
> [used by alpm_list_add ...]. 

Exactly what I was thinking, but wasn't sure. Thanks.

> Then the hackish line 119 could also
> disappear from alpm_list.c
> 

Hmm, why does renaming a function allows us to do that?
Any way you can provide a patch for this? it would be appreciated ;)




More information about the pacman-dev mailing list