[pacman-dev] alpm_list_count gives 1 on an list created by alpm_list_new
Nagy Gabor
ngaba at bibl.u-szeged.hu
Sat Feb 23 14:25:23 EST 2008
> hi.
>
> i am just using my free time to code with alpm and alpm_list. nothing
> to be published yet (or ever ?)
>
> today i just noticed that
> a list created with alpm_list_new has a number of element of 1 as
> alpm_list_count reports it:
> #include <stdlib.h>
> #include <stdio.h>
>
> #include <alpm_list.h>
>
> int main(void) {
> alpm_list_t *l;
> l = alpm_list_new();
> printf("count=%d\n",alpm_list_count(l));
> return(0);
> }
>
> $ ./test
> count=1
>
> shining wanted me to post here about that.
> that's done !
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
More information about the pacman-dev
mailing list