GNOME Bugzilla – Bug 625772
Several GLib containers leak their contents upon destruction
Last modified: 2014-06-27 19:14:49 UTC
Currently, there is hardcoded support for List and SList only, which unrefs their contents when the list is destroyed (this is in CCodeBaseModule.get_destroy_func_expression ()). All remaining glib containers are missing this functionality: Queue, AsyncQueue, HashTable, Tree, Sequence In addition, bug 586577 applies to all these (memory is leaked when a removal function is called). It might be worth inventing new attributes for dealing with them. Or we could just hardcode the logic, as done for List and SList.
GLib.Sequence, GLib.HashTable, GLib.Tree, and GLib.AsyncQueue shouldn't leak if you specify correct GLib.DestroyNotify functions. That only leaves GLib.Queue.
This was fixed a very long time ago.