From 50f4eb876a9d272847e22e3349309ce3f7ac42dc Mon Sep 17 00:00:00 2001 From: Edward Hervey Date: Wed, 15 Mar 2006 16:17:12 +0000 Subject: Fix memleak with gst_static_pad_template_get(). Original commit message from CVS: * ext/cairo/gsttextoverlay.c: (gst_text_overlay_init): * ext/dv/gstdvdemux.c: (gst_dvdemux_init), (gst_dvdemux_add_pads): * ext/gdk_pixbuf/gstgdkpixbuf.c: (gst_gdk_pixbuf_init): * ext/jpeg/gstjpegdec.c: (gst_jpeg_dec_init), (gst_jpeg_dec_setcaps): * ext/jpeg/gstjpegenc.c: (gst_jpegenc_init): * ext/jpeg/gstsmokedec.c: (gst_smokedec_init): * ext/jpeg/gstsmokeenc.c: (gst_smokeenc_init): * ext/libmng/gstmngdec.c: (gst_mngdec_init), (gst_mngdec_src_getcaps): * ext/libpng/gstpngdec.c: (gst_pngdec_init), (gst_pngdec_caps_create_and_set): * ext/libpng/gstpngenc.c: (gst_pngenc_init): * ext/mikmod/gstmikmod.c: (gst_mikmod_init): * ext/speex/gstspeexdec.c: (gst_speex_dec_init): * gst/alpha/gstalpha.c: (gst_alpha_init): * gst/auparse/gstauparse.c: (gst_au_parse_init): * gst/avi/gstavidemux.c: (gst_avi_demux_init), (gst_avi_demux_handle_src_event), (gst_avi_demux_parse_stream): * gst/cutter/gstcutter.c: (gst_cutter_init): * gst/debug/efence.c: (gst_efence_init), (gst_efence_getrange), (gst_efence_checkgetrange): * gst/debug/negotiation.c: (gst_negotiation_init): * gst/flx/gstflxdec.c: (gst_flxdec_init): * gst/goom/gstgoom.c: (gst_goom_init): * gst/rtp/gstasteriskh263.c: (gst_asteriskh263_init): * gst/rtp/gstrtpL16depay.c: (gst_rtp_L16depay_init): * gst/rtp/gstrtpL16pay.c: (gst_rtpL16pay_init): * gst/rtp/gstrtpamrdepay.c: (gst_rtp_amr_depay_init): * gst/rtp/gstrtpdepay.c: (gst_rtp_depay_init): * gst/rtp/gstrtpmpadepay.c: (gst_rtp_mpa_depay_init): * gst/rtsp/gstrtpdec.c: (gst_rtpdec_init): * gst/smpte/gstsmpte.c: (gst_smpte_init): * gst/wavparse/gstwavparse.c: (gst_wavparse_init), (gst_wavparse_create_sourcepad): Fix memleak with gst_static_pad_template_get(). This uses gst_pad_new_from_static_template() instead. Fixes #333512 --- ext/libpng/gstpngdec.c | 9 +++++---- ext/libpng/gstpngenc.c | 8 ++++---- 2 files changed, 9 insertions(+), 8 deletions(-) (limited to 'ext/libpng') diff --git a/ext/libpng/gstpngdec.c b/ext/libpng/gstpngdec.c index bbdda42b..68423288 100644 --- a/ext/libpng/gstpngdec.c +++ b/ext/libpng/gstpngdec.c @@ -127,8 +127,8 @@ gst_pngdec_class_init (GstPngDecClass * klass) static void gst_pngdec_init (GstPngDec * pngdec) { - pngdec->sinkpad = gst_pad_new_from_template (gst_static_pad_template_get - (&gst_pngdec_sink_pad_template), "sink"); + pngdec->sinkpad = + gst_pad_new_from_static_template (&gst_pngdec_sink_pad_template, "sink"); gst_pad_set_activate_function (pngdec->sinkpad, gst_pngdec_sink_activate); gst_pad_set_activatepush_function (pngdec->sinkpad, gst_pngdec_sink_activate_push); @@ -138,8 +138,8 @@ gst_pngdec_init (GstPngDec * pngdec) gst_pad_set_event_function (pngdec->sinkpad, gst_pngdec_sink_event); gst_element_add_pad (GST_ELEMENT (pngdec), pngdec->sinkpad); - pngdec->srcpad = gst_pad_new_from_template (gst_static_pad_template_get - (&gst_pngdec_src_pad_template), "src"); + pngdec->srcpad = + gst_pad_new_from_static_template (&gst_pngdec_src_pad_template, "src"); gst_pad_use_fixed_caps (pngdec->srcpad); gst_element_add_pad (GST_ELEMENT (pngdec), pngdec->srcpad); @@ -364,6 +364,7 @@ gst_pngdec_caps_create_and_set (GstPngDec * pngdec) res = gst_caps_intersect (caps, gst_pad_template_get_caps (templ)); gst_caps_unref (caps); + gst_object_unref (templ); if (!gst_pad_set_caps (pngdec->srcpad, res)) { ret = GST_FLOW_ERROR; diff --git a/ext/libpng/gstpngenc.c b/ext/libpng/gstpngenc.c index f52e57b4..be0830ab 100644 --- a/ext/libpng/gstpngenc.c +++ b/ext/libpng/gstpngenc.c @@ -186,8 +186,8 @@ static void gst_pngenc_init (GstPngEnc * pngenc, GstPngEncClass * g_class) { /* sinkpad */ - pngenc->sinkpad = gst_pad_new_from_template - (gst_static_pad_template_get (&pngenc_sink_template), "sink"); + pngenc->sinkpad = gst_pad_new_from_static_template + (&pngenc_sink_template, "sink"); gst_pad_set_chain_function (pngenc->sinkpad, gst_pngenc_chain); /* gst_pad_set_link_function (pngenc->sinkpad, gst_pngenc_sinklink); */ /* gst_pad_set_getcaps_function (pngenc->sinkpad, gst_pngenc_sink_getcaps); */ @@ -195,8 +195,8 @@ gst_pngenc_init (GstPngEnc * pngenc, GstPngEncClass * g_class) gst_element_add_pad (GST_ELEMENT (pngenc), pngenc->sinkpad); /* srcpad */ - pngenc->srcpad = gst_pad_new_from_template - (gst_static_pad_template_get (&pngenc_src_template), "src"); + pngenc->srcpad = gst_pad_new_from_static_template + (&pngenc_src_template, "src"); /* pngenc->srcpad = gst_pad_new ("src", GST_PAD_SRC); */ /* gst_pad_set_getcaps_function (pngenc->srcpad, gst_pngenc_src_getcaps); */ /* gst_pad_set_setcaps_function (pngenc->srcpad, gst_pngenc_setcaps); */ -- cgit