[0.11] gstreamer: tests: fix some more leaks
Wim Taymans
wtay at kemper.freedesktop.org
Fri Jan 27 03:52:18 PST 2012
Module: gstreamer
Branch: 0.11
Commit: 21455d35b13cb7e6ed225b81bdaf566158b14350
URL: http://cgit.freedesktop.org/gstreamer/gstreamer/commit/?id=21455d35b13cb7e6ed225b81bdaf566158b14350
Author: Wim Taymans <wim.taymans at collabora.co.uk>
Date: Fri Jan 27 12:50:24 2012 +0100
tests: fix some more leaks
---
gst/gstdebugutils.c | 4 ++--
gst/gstutils.c | 9 +++++----
libs/gst/base/gstbaseparse.c | 3 ++-
tests/check/libs/adapter.c | 12 ++++++++----
4 files changed, 17 insertions(+), 11 deletions(-)
diff --git a/gst/gstdebugutils.c b/gst/gstdebugutils.c
index eddfdac..8e31bde 100644
--- a/gst/gstdebugutils.c
+++ b/gst/gstdebugutils.c
@@ -351,10 +351,10 @@ debug_dump_element_pad_link (GstPad * pad, GstElement * element,
) {
caps = gst_pad_get_current_caps (pad);
if (!caps)
- caps = gst_caps_copy (gst_pad_get_pad_template_caps (pad));
+ caps = gst_pad_get_pad_template_caps (pad);
peer_caps = gst_pad_get_current_caps (peer_pad);
if (!peer_caps)
- peer_caps = gst_caps_copy (gst_pad_get_pad_template_caps (peer_pad));
+ peer_caps = gst_pad_get_pad_template_caps (peer_pad);
media = debug_dump_describe_caps (caps, details);
/* check if peer caps are different */
diff --git a/gst/gstutils.c b/gst/gstutils.c
index 725671b..64aed7f 100644
--- a/gst/gstutils.c
+++ b/gst/gstutils.c
@@ -2795,7 +2795,7 @@ query_caps_func (GstPad * pad, QueryCapsData * data)
gboolean
gst_pad_proxy_query_caps (GstPad * pad, GstQuery * query)
{
- GstCaps *intersected;
+ GstCaps *templ, *intersected;
QueryCapsData data;
g_return_val_if_fail (GST_IS_PAD (pad), FALSE);
@@ -2811,14 +2811,15 @@ gst_pad_proxy_query_caps (GstPad * pad, GstQuery * query)
gst_pad_forward (pad, (GstPadForwardFunction) query_caps_func, &data);
+ templ = gst_pad_get_pad_template_caps (pad);
if (data.ret) {
- intersected =
- gst_caps_intersect (data.ret, gst_pad_get_pad_template_caps (pad));
+ intersected = gst_caps_intersect (data.ret, templ);
gst_caps_unref (data.ret);
} else {
- intersected = gst_caps_copy (gst_pad_get_pad_template_caps (pad));
+ intersected = templ;
}
gst_query_set_caps_result (query, intersected);
+ gst_caps_unref (templ);
gst_caps_unref (intersected);
return TRUE;
diff --git a/libs/gst/base/gstbaseparse.c b/libs/gst/base/gstbaseparse.c
index 82c8127..767a15d 100644
--- a/libs/gst/base/gstbaseparse.c
+++ b/libs/gst/base/gstbaseparse.c
@@ -1173,8 +1173,9 @@ gst_base_parse_sink_query (GstPad * pad, GstObject * parent, GstQuery * query)
caps =
gst_caps_intersect_full (filter, template_caps,
GST_CAPS_INTERSECT_FIRST);
+ gst_caps_unref (template_caps);
} else {
- caps = gst_caps_copy (template_caps);
+ caps = template_caps;
}
gst_query_set_caps_result (query, caps);
gst_caps_unref (caps);
diff --git a/tests/check/libs/adapter.c b/tests/check/libs/adapter.c
index 73d37a5..bf356b9 100644
--- a/tests/check/libs/adapter.c
+++ b/tests/check/libs/adapter.c
@@ -37,7 +37,7 @@ GST_START_TEST (test_peek1)
GstBuffer *buffer;
guint avail;
GstMapInfo info;
- const guint8 *data1, *data2;
+ const guint8 *data1, *data2, *idata;
adapter = gst_adapter_new ();
fail_if (adapter == NULL);
@@ -46,6 +46,8 @@ GST_START_TEST (test_peek1)
buffer = gst_buffer_new_and_alloc (512);
fail_unless (gst_buffer_map (buffer, &info, GST_MAP_READ));
+ idata = info.data;
+ gst_buffer_unmap (buffer, &info);
fail_if (buffer == NULL);
gst_adapter_push (adapter, buffer);
@@ -69,7 +71,7 @@ GST_START_TEST (test_peek1)
data1 = gst_adapter_map (adapter, 512);
fail_if (data1 == NULL);
/* it should point to the buffer data as well */
- fail_if (data1 != info.data);
+ fail_if (data1 != idata);
gst_adapter_unmap (adapter);
data2 = gst_adapter_map (adapter, 512);
@@ -99,7 +101,7 @@ GST_START_TEST (test_peek1)
fail_if (data2 == NULL);
/* peek should return the same old pointer + 10 */
fail_if (data2 != data1 + 10);
- fail_if (data2 != (guint8 *) info.data + 10);
+ fail_if (data2 != (guint8 *) idata + 10);
gst_adapter_unmap (adapter);
/* flush some more */
@@ -114,7 +116,7 @@ GST_START_TEST (test_peek1)
data2 = gst_adapter_map (adapter, 2);
fail_if (data2 == NULL);
fail_if (data2 != data1 + 510);
- fail_if (data2 != (guint8 *) info.data + 510);
+ fail_if (data2 != (guint8 *) idata + 510);
gst_adapter_unmap (adapter);
/* flush some more */
@@ -228,6 +230,7 @@ GST_START_TEST (test_take3)
fail_unless (gst_buffer_map (buffer, &info, GST_MAP_READ));
fail_unless (info.data != NULL);
fail_unless (info.size == 100);
+ gst_buffer_unmap (buffer, &info);
/* set up and push subbuffers */
buffer2 = gst_buffer_copy_region (buffer, GST_BUFFER_COPY_ALL, 0, 25);
@@ -257,6 +260,7 @@ GST_START_TEST (test_take3)
/* the data should be the same */
fail_unless (info.data == info2.data);
+ gst_buffer_unmap (buffer2, &info2);
gst_buffer_unref (buffer2);
g_object_unref (adapter);
More information about the gstreamer-commits
mailing list