From 0f180098a193507b3ec936314d3a789c6b60dbbb Mon Sep 17 00:00:00 2001 From: Sebastian Dröge Date: Mon, 11 Feb 2008 14:01:52 +0000 Subject: Close some memory leaks spotted by the unit test. Fixes bug #515697. Original commit message from CVS: * gst/multifile/gstmultifilesrc.c: (gst_multi_file_src_create): * tests/check/elements/multifile.c: (GST_START_TEST): Close some memory leaks spotted by the unit test. Fixes bug #515697. --- gst/multifile/gstmultifilesrc.c | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) (limited to 'gst') diff --git a/gst/multifile/gstmultifilesrc.c b/gst/multifile/gstmultifilesrc.c index 47cfad36..dfd1520f 100644 --- a/gst/multifile/gstmultifilesrc.c +++ b/gst/multifile/gstmultifilesrc.c @@ -285,6 +285,8 @@ gst_multi_file_src_create (GstPushSrc * src, GstBuffer ** buffer) /* If we've read at least one buffer successfully, not finding the * next file is EOS. */ g_free (filename); + if (error != NULL) + g_error_free (error); return GST_FLOW_UNEXPECTED; } else { goto handle_error; @@ -296,6 +298,7 @@ gst_multi_file_src_create (GstPushSrc * src, GstBuffer ** buffer) buf = gst_buffer_new (); GST_BUFFER_DATA (buf) = (unsigned char *) data; + GST_BUFFER_MALLOCDATA (buf) = GST_BUFFER_DATA (buf); GST_BUFFER_SIZE (buf) = size; GST_BUFFER_OFFSET (buf) = multifilesrc->offset; GST_BUFFER_OFFSET_END (buf) = multifilesrc->offset + size; @@ -310,12 +313,15 @@ gst_multi_file_src_create (GstPushSrc * src, GstBuffer ** buffer) handle_error: { - switch (errno) { - default:{ - GST_ELEMENT_ERROR (multifilesrc, RESOURCE, READ, - ("Error while reading from file \"%s\".", filename), - ("%s", g_strerror (errno))); - } + if (error != NULL) { + GST_ELEMENT_ERROR (multifilesrc, RESOURCE, READ, + ("Error while reading from file \"%s\".", filename), + ("%s", error->message)); + g_error_free (error); + } else { + GST_ELEMENT_ERROR (multifilesrc, RESOURCE, READ, + ("Error while reading from file \"%s\".", filename), + ("%s", g_strerror (errno))); } g_free (filename); return GST_FLOW_ERROR; -- cgit