On Sun, 2003-06-22 at 17:04, Mohammed Sameer wrote:
Hi, suppose that i have a GSList *foo and a gchar *bar and i've used something like this: foo = g_slist_append(foo, g_strdup(bar)); now when i free the list, Do i have to manually iterate over the list and free the ->data ? i've browsed the code but i didn't understand well the gallocator things
Yes, you do need to free the data yourself. For a list of strings,
g_slist_foreach (list, (GForeachFunc) g_free, NULL); should do it.
The GAllocator stuff is just the way GLib handles lists & such. It
allocates a bunch of them, and when you do g_(s)list_free, it puts them
back in the pool for other code to use (so it doesn't actually free the
list, it just marks the list items for re-use).
--
Peace,
Jim Cape
http://ignore-your.tv
"It is literally true that, like Christianity, Socialism
has conquered the world by defeating itself."
-- Alexander Berkman, ABC of Anarchism
Attachment:
signature.asc
Description: This is a digitally signed message part