From: <wt...@fr...> - 2005-12-16 19:25:07
|
CVS Root: /cvs/gstreamer Module: gstreamer Changes by: wtay Date: Fri Dec 16 2005 11:24:36 PST Log message: * gst/gstregistryxml.c: (load_feature): Cleanups. Don't use g_object_unref on GstObjects so that we avoid leaks on unsafe glibs. Modified files: . : ChangeLog gst : gstregistryxml.c Links: http://freedesktop.org/cgi-bin/viewcvs.cgi/gstreamer/gstreamer/ChangeLog.diff?r1=1.2142&r2=1.2143 http://freedesktop.org/cgi-bin/viewcvs.cgi/gstreamer/gstreamer/gst/gstregistryxml.c.diff?r1=1.18&r2=1.19 ====Begin Diffs==== Index: ChangeLog =================================================================== RCS file: /cvs/gstreamer/gstreamer/ChangeLog,v retrieving revision 1.2142 retrieving revision 1.2143 diff -u -d -r1.2142 -r1.2143 --- ChangeLog 16 Dec 2005 18:20:58 -0000 1.2142 +++ ChangeLog 16 Dec 2005 19:24:23 -0000 1.2143 @@ -1,5 +1,12 @@ 2005-12-16 Wim Taymans <wi...@fl...> + * gst/gstregistryxml.c: (load_feature): + Cleanups. + Don't use g_object_unref on GstObjects so that we avoid + leaks on unsafe glibs. + +2005-12-16 Wim Taymans <wi...@fl...> * gst/gstbin.c: (gst_bin_recalc_state): Small doc updates. Index: gstregistryxml.c RCS file: /cvs/gstreamer/gstreamer/gst/gstregistryxml.c,v retrieving revision 1.18 retrieving revision 1.19 diff -u -d -r1.18 -r1.19 --- gstregistryxml.c 6 Dec 2005 19:29:12 -0000 1.18 +++ gstregistryxml.c 16 Dec 2005 19:24:24 -0000 1.19 @@ -218,16 +218,20 @@ load_feature (xmlTextReaderPtr reader) { int ret; - int depth = xmlTextReaderDepth (reader); - gchar *feature_name = - (gchar *) xmlTextReaderGetAttribute (reader, BAD_CAST "typename"); + int depth; + gchar *feature_name; GstPluginFeature *feature; GType type; + depth = xmlTextReaderDepth (reader); + feature_name = + (gchar *) xmlTextReaderGetAttribute (reader, BAD_CAST "typename"); GST_DEBUG ("loading feature"); if (!feature_name) return NULL; type = g_type_from_name (feature_name); g_free (feature_name); feature_name = NULL; @@ -240,7 +244,11 @@ } if (!GST_IS_PLUGIN_FEATURE (feature)) { - g_object_unref (feature); + /* don't really know what it is */ + if (GST_IS_OBJECT (feature)) + gst_object_unref (feature); + else + g_object_unref (feature); while ((ret = xmlTextReaderRead (reader)) == 1) { |