From cadb0526d573d70d3553c1d6ec897f54c7b02ad6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tim-Philipp=20M=C3=BCller?= Date: Mon, 15 Mar 2010 10:13:19 +0000 Subject: [PATCH] mpegtsdemux: fix minor memory leak in property getter Don't leak the string returned by g_strjoinv(). While we're at it, use GString to assemble the string to be returned. --- gst/mpegdemux/gstmpegtsdemux.c | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/gst/mpegdemux/gstmpegtsdemux.c b/gst/mpegdemux/gstmpegtsdemux.c index f6324ba991..eb5a05a10f 100644 --- a/gst/mpegdemux/gstmpegtsdemux.c +++ b/gst/mpegdemux/gstmpegtsdemux.c @@ -3224,15 +3224,15 @@ gst_mpegts_demux_get_property (GObject * object, guint prop_id, if (demux->nb_elementary_pids == 0) { g_value_set_static_string (value, ""); } else { - gchar **ts_pids; + GString *ts_pids; - ts_pids = g_new0 (gchar *, demux->nb_elementary_pids + 1); - for (i = 0; i < demux->nb_elementary_pids; i++) { - ts_pids[i] = g_strdup_printf ("%d", demux->elementary_pids[i]); + ts_pids = g_string_sized_new (32); + /* FIXME: align with property description which uses hex numbers? */ + g_string_append_printf (ts_pids, "%d", demux->elementary_pids[0]); + for (i = 1; i < demux->nb_elementary_pids; i++) { + g_string_append_printf (ts_pids, ":%d", demux->elementary_pids[i]); } - - g_value_set_string (value, g_strjoinv (":", ts_pids)); - g_strfreev (ts_pids); + g_value_take_string (value, g_string_free (ts_pids, FALSE)); } break; case PROP_CHECK_CRC: