On Thu, Feb 23, 2006 at 09:22:30AM +0100, Colossus wrote:
> 
> gchar **array = NULL;:
> array = gtk_selection_data_get_uris ( data );
> while (array[len])
> {
>        filename = g_filename_from_uri ( array[len] , NULL, NULL );
>        Files_to_Add = g_slist_prepend ( Files_to_Add , filename );
>        g_free (filename);
>        len++;
> }
> 
> The problem is that when I free filename the GSList data becames 
> corrupted, but the docs says that g_filename_from_uri returns 
> allocated memory, so what can I do ? Once I put filename in the GSList 
> I don't need it anymore.

I suppose you do need something when you store it to
a GSList.  What is the point of storing pointers to freed
memory to a GSList?

> Is filename freed when I call g_slist_free ?

You have to free it yourself before freeing the list or
individual elements.

GSList can store some untyped pointers.  It has no idea of
what they point to (or if they are real pointers at all),
therefore it cannot make copies of the data, cannot free
them, etc.  It just stores some untyped pointers.

Yeti


--
That's enough.
_______________________________________________
gtk-app-devel-list mailing list
gtk-app-devel-list@gnome.org
http://mail.gnome.org/mailman/listinfo/gtk-app-devel-list

Reply via email to