From f15e6e85634af0ae8ea7866d6d8c274365e68645 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?V=C3=ADctor=20Manuel=20J=C3=A1quez=20Leal?= Date: Wed, 11 Feb 2015 13:42:54 +0100 Subject: memory leaks at logging The function gst_caps_to_string () return a new allocated string that should be free. Some logging instructions use that function without freeing the allocated string. This patch replaces the function with GST_PTR_FORMAT magic, and in the case of the tests, the free() is added. https://bugzilla.gnome.org/show_bug.cgi?id=744326 --- clutter-gst/clutter-gst-video-sink.c | 4 ++-- tests/test-alpha.c | 5 ++++- tests/test-rgb-upload.c | 5 ++++- tests/test-yuv-upload.c | 5 ++++- 4 files changed, 14 insertions(+), 5 deletions(-) diff --git a/clutter-gst/clutter-gst-video-sink.c b/clutter-gst/clutter-gst-video-sink.c index b4f77a3..640971d 100644 --- a/clutter-gst/clutter-gst-video-sink.c +++ b/clutter-gst/clutter-gst-video-sink.c @@ -1812,7 +1812,7 @@ clutter_gst_video_sink_get_caps (GstBaseSink *bsink, ClutterGstVideoSink *sink; sink = CLUTTER_GST_VIDEO_SINK (bsink); - GST_DEBUG_OBJECT (bsink, "Getting caps for %s", gst_caps_to_string (filter)); + GST_DEBUG_OBJECT (bsink, "Getting caps for %" GST_PTR_FORMAT, filter); if (sink->priv->caps == NULL) return NULL; @@ -1940,7 +1940,7 @@ clutter_gst_video_sink_set_caps (GstBaseSink *bsink, sink = CLUTTER_GST_VIDEO_SINK (bsink); priv = sink->priv; - GST_INFO_OBJECT (bsink, "Setting caps to %s", gst_caps_to_string (caps)); + GST_INFO_OBJECT (bsink, "Setting caps to %" GST_PTR_FORMAT, caps); if (!clutter_gst_video_sink_parse_caps (caps, sink, FALSE)) return FALSE; diff --git a/tests/test-alpha.c b/tests/test-alpha.c index 5f3f5a1..93a32b6 100644 --- a/tests/test-alpha.c +++ b/tests/test-alpha.c @@ -82,6 +82,7 @@ main (int argc, char *argv[]) GstElement *capsfilter; GstElement *sink; GstCaps *caps; + gchar *capsstr; result = clutter_gst_init_with_args (&argc, &argv, @@ -151,7 +152,9 @@ main (int argc, char *argv[]) g_object_set (capsfilter, "caps", caps, NULL); - g_printf ("%s: [caps] %s\n", __FILE__, gst_caps_to_string (caps)); + capsstr = gst_caps_to_string (caps); + g_printf ("%s: [caps] %s\n", __FILE__, capsstr); + g_free (capsstr); gst_bin_add_many (GST_BIN (pipeline), src, capsfilter, sink, NULL); result = gst_element_link_many (src, capsfilter, sink, NULL); if (result == FALSE) diff --git a/tests/test-rgb-upload.c b/tests/test-rgb-upload.c index 63708ae..9cf3ae9 100644 --- a/tests/test-rgb-upload.c +++ b/tests/test-rgb-upload.c @@ -75,6 +75,7 @@ main (int argc, char *argv[]) GstElement *capsfilter; GstElement *sink; GstCaps *caps; + gchar *capsstr; GstVideoFormat format; result = clutter_gst_init_with_args (&argc, @@ -124,7 +125,9 @@ main (int argc, char *argv[]) NULL); g_object_set (capsfilter, "caps", caps, NULL); - g_printf ("%s: [caps] %s\n", __FILE__, gst_caps_to_string (caps)); + capsstr = gst_caps_to_string (caps); + g_printf ("%s: [caps] %s\n", __FILE__, capsstr); + g_free (capsstr); gst_bin_add_many (GST_BIN (pipeline), src, capsfilter, sink, NULL); result = gst_element_link_many (src, capsfilter, sink, NULL); if (result == FALSE) diff --git a/tests/test-yuv-upload.c b/tests/test-yuv-upload.c index c1608cd..4b7f7a4 100644 --- a/tests/test-yuv-upload.c +++ b/tests/test-yuv-upload.c @@ -64,6 +64,7 @@ main (int argc, char *argv[]) GstElement *capsfilter; GstElement *sink; GstCaps *caps; + gchar *capsstr; result = clutter_gst_init_with_args (&argc, &argv, @@ -106,7 +107,9 @@ main (int argc, char *argv[]) NULL); g_object_set (capsfilter, "caps", caps, NULL); - g_printf ("%s: [caps] %s\n", __FILE__, gst_caps_to_string (caps)); + capsstr = gst_caps_to_string (caps); + g_printf ("%s: [caps] %s\n", __FILE__, capsstr); + g_free (capsstr); gst_bin_add_many (GST_BIN (pipeline), src, capsfilter, sink, NULL); result = gst_element_link_many (src, capsfilter, sink, NULL); if (result == FALSE) -- cgit v1.2.1