RE: newbie and g_list*
- From: "Dugas, Alan" <alan dugas analog com>
- To: gtk-list gnome org, "Michael P. Jarreau" <mike JACtrls com>
- Subject: RE: newbie and g_list*
- Date: Mon, 29 Jan 2001 14:03:56 -0500
I believe this occurs because your deleting/freeing an item from the glist
without updating the pointers of the previous and next items in the glist - they
still point to the freed memory. Hope this helps.
-- Stupid Genius
> ----------
> From: Michael P. Jarreau[SMTP:mike JACtrls com]
> Sent: Monday, January 29, 2001 2:01 PM
> To: gtk-list gnome org
> Subject: newbie and g_list*
>
> I am running on linux. I use scandir to look at a directory. I do this
> periodically so that my GUI can update it's display when new data arrives.
> The scandir function mallocs memory for data and I add that to a list. This
> code looks something like this (error checking removed):
>
> // This works fine. It's here for background.
> int n;
> struct dirent **dirEntries = NULL;
> n = scandir (directory, &dirEntries, 0, alphasort);
> while (n)
> {
> list = g_list_append (list, dirEntries[n]->d_name);
> }
> free (dirEntries);
>
> The free above does not remove the names, just the structure pointing to
> them. It is malloced by scandir as are the arrays for the file names. Note
> that I did not free the memory for those names.
>
> Later, I want to remove one of them, so I locate it with function f(). And
> try
>
> // This works.
> GList *tmp = f ();
> list = g_list_remove (list, tmp->data);
>
> // This creates a segmentation fault and I don't understand why.
> free (tmp->data);
>
> I am led to believe that data is just a pointer. I expect that it contains
> the pointer to the directory entry that I assigned to it in the
> g_list_append function. Thus, I can nuke it whenever I want as long as I
> have already removed it from the list. Is that correct?
>
> Please ignore the ignorance. I've searched the archive and found several
> discussions, but I have not learned from there.
>
> Thanks,
> Mike
>
>
> _______________________________________________
> gtk-list mailing list
> gtk-list gnome org
> http://mail.gnome.org/mailman/listinfo/gtk-list
>
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]