summaryrefslogtreecommitdiff
path: root/ext/rsvg/gstrsvgoverlay.c
diff options
context:
space:
mode:
authorVincent Penquerc'h <vincent.penquerch@collabora.co.uk>2012-01-13 10:25:22 +0000
committerVincent Penquerc'h <vincent.penquerch@collabora.co.uk>2012-01-13 10:25:22 +0000
commit08bce008b0a38d5994f926f2a1e61be4541e444d (patch)
treeae2674a9c1d327cf2278e91c2ee263c95b6f499d /ext/rsvg/gstrsvgoverlay.c
parent409816b5baaecdf61819c23475ad77d3ed9811b8 (diff)
downloadgstreamer-plugins-bad-08bce008b0a38d5994f926f2a1e61be4541e444d.tar.gz
rsvgoverlay: fix adapter leak
Diffstat (limited to 'ext/rsvg/gstrsvgoverlay.c')
-rw-r--r--ext/rsvg/gstrsvgoverlay.c13
1 files changed, 13 insertions, 0 deletions
diff --git a/ext/rsvg/gstrsvgoverlay.c b/ext/rsvg/gstrsvgoverlay.c
index 121d4d252..42de199f7 100644
--- a/ext/rsvg/gstrsvgoverlay.c
+++ b/ext/rsvg/gstrsvgoverlay.c
@@ -123,6 +123,8 @@ static GstStaticPadTemplate data_sink_template =
GST_BOILERPLATE (GstRsvgOverlay, gst_rsvg_overlay, GstVideoFilter,
GST_TYPE_VIDEO_FILTER);
+static void gst_rsvg_overlay_finalize (GObject * object);
+
static void
gst_rsvg_overlay_set_svg_data (GstRsvgOverlay * overlay, const gchar * data,
gboolean consider_as_filename)
@@ -466,6 +468,7 @@ gst_rsvg_overlay_class_init (GstRsvgOverlayClass * klass)
gobject_class->set_property = gst_rsvg_overlay_set_property;
gobject_class->get_property = gst_rsvg_overlay_get_property;
+ gobject_class->finalize = gst_rsvg_overlay_finalize;
g_object_class_install_property (G_OBJECT_CLASS (klass), PROP_DATA,
g_param_spec_string ("data", "data", "SVG data.", "",
@@ -541,3 +544,13 @@ gst_rsvg_overlay_init (GstRsvgOverlay * overlay, GstRsvgOverlayClass * klass)
GST_DEBUG_FUNCPTR (gst_rsvg_overlay_data_sink_event));
gst_element_add_pad (GST_ELEMENT (overlay), overlay->data_sinkpad);
}
+
+static void
+gst_rsvg_overlay_finalize (GObject * object)
+{
+ GstRsvgOverlay *overlay = GST_RSVG_OVERLAY (object);
+
+ g_object_unref (overlay->adapter);
+
+ G_OBJECT_CLASS (parent_class)->finalize (object);
+}