diff --git a/ChangeLog b/ChangeLog index dd7aef83c8..de40801ee1 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,9 @@ +2006-08-21 Edward Hervey + + * gst/gstxml.c: (gst_xml_class_init), (gst_xml_dispose): + Implement GObject::dispose virtual method in GstXML so we can free the + top_elements GList. + 2006-08-21 Wim Taymans * gst/gstbuffer.c: (gst_buffer_make_metadata_writable), diff --git a/gst/gstxml.c b/gst/gstxml.c index 292626ad03..63529a8593 100644 --- a/gst/gstxml.c +++ b/gst/gstxml.c @@ -49,6 +49,7 @@ enum static void gst_xml_class_init (GstXMLClass * klass); static void gst_xml_init (GstXML * xml); +static void gst_xml_dispose (GObject * object); static void gst_xml_object_loaded (GstObject * private, GstObject * object, xmlNodePtr self, gpointer data); @@ -89,6 +90,8 @@ gst_xml_class_init (GstXMLClass * klass) parent_class = g_type_class_peek_parent (klass); + gobject_class->dispose = GST_DEBUG_FUNCPTR (gst_xml_dispose); + /* FIXME G_TYPE_POINTER should be GType of xmlNodePtr * (ensonic) can't be fixed, as libxml does not use GObject (unfortunately) */ @@ -114,6 +117,12 @@ gst_xml_init (GstXML * xml) xml->topelements = NULL; } +static void +gst_xml_dispose (GObject * object) +{ + g_list_free (GST_XML (object)->topelements); +} + /** * gst_xml_new: *