From 9bf46a1065ee8430e072942f34d2504033fab633 Mon Sep 17 00:00:00 2001 From: Christoph Reiter Date: Mon, 20 Jun 2016 15:58:59 +0200 Subject: [PATCH] gst: ref_sink() some more floating references returned by g_object_new() https://bugzilla.gnome.org/show_bug.cgi?id=743062 --- gst/gstbin.c | 1 + tests/check/gst/gstbin.c | 4 ++++ tests/check/gst/gstclock.c | 2 ++ tests/check/gst/gstsystemclock.c | 3 +++ 4 files changed, 10 insertions(+) diff --git a/gst/gstbin.c b/gst/gstbin.c index e1389cd..bcd6b6c 100644 --- a/gst/gstbin.c +++ b/gst/gstbin.c @@ -496,6 +496,7 @@ gst_bin_init (GstBin * bin) /* Set up a bus for listening to child elements */ bus = g_object_new (GST_TYPE_BUS, "enable-async", FALSE, NULL); + gst_object_ref_sink (bus); bin->child_bus = bus; GST_DEBUG_OBJECT (bin, "using bus %" GST_PTR_FORMAT " to listen to children", bus); diff --git a/tests/check/gst/gstbin.c b/tests/check/gst/gstbin.c index c242553..fe41ac0 100644 --- a/tests/check/gst/gstbin.c +++ b/tests/check/gst/gstbin.c @@ -278,6 +278,7 @@ GST_START_TEST (test_message_state_changed) ASSERT_OBJECT_REFCOUNT (bin, "bin", 1); bus = g_object_new (gst_bus_get_type (), NULL); + gst_object_ref_sink (bus); gst_element_set_bus (GST_ELEMENT_CAST (bin), bus); /* change state, spawning a message, causing an incref on the bin */ @@ -321,6 +322,7 @@ GST_START_TEST (test_message_state_changed_child) ASSERT_OBJECT_REFCOUNT (bin, "bin", 1); bus = g_object_new (gst_bus_get_type (), NULL); + gst_object_ref_sink (bus); gst_element_set_bus (GST_ELEMENT_CAST (bin), bus); src = gst_element_factory_make ("fakesrc", NULL); @@ -542,6 +544,7 @@ GST_START_TEST (test_watch_for_state_change) fail_unless (bin != NULL, "Could not create bin"); bus = g_object_new (gst_bus_get_type (), NULL); + gst_object_ref_sink (bus); gst_element_set_bus (GST_ELEMENT_CAST (bin), bus); src = gst_element_factory_make ("fakesrc", NULL); @@ -606,6 +609,7 @@ GST_START_TEST (test_state_change_error_message) fail_unless (bin != NULL, "Could not create bin"); bus = g_object_new (gst_bus_get_type (), NULL); + gst_object_ref_sink (bus); gst_element_set_bus (GST_ELEMENT_CAST (bin), bus); src = gst_element_factory_make ("fakesrc", NULL); diff --git a/tests/check/gst/gstclock.c b/tests/check/gst/gstclock.c index a6ec723..3bf1db2 100644 --- a/tests/check/gst/gstclock.c +++ b/tests/check/gst/gstclock.c @@ -76,7 +76,9 @@ GST_START_TEST (test_set_master_refcount) /* create master and slave */ master = g_object_new (TYPE_TEST_CLOCK, "name", "TestClockMaster", NULL); + gst_object_ref_sink (master); slave = g_object_new (TYPE_TEST_CLOCK, "name", "TestClockSlave", NULL); + gst_object_ref_sink (slave); GST_OBJECT_FLAG_SET (slave, GST_CLOCK_FLAG_CAN_SET_MASTER); fail_unless_equals_int (GST_OBJECT_REFCOUNT (master), 1); diff --git a/tests/check/gst/gstsystemclock.c b/tests/check/gst/gstsystemclock.c index 03ca2a3..b68d629 100644 --- a/tests/check/gst/gstsystemclock.c +++ b/tests/check/gst/gstsystemclock.c @@ -130,6 +130,7 @@ GST_START_TEST (test_set_default) /* set a new default clock to a different instance which should replace the * static clock with this one, and unref the static clock */ clock = g_object_new (GST_TYPE_SYSTEM_CLOCK, "name", "TestClock", NULL); + gst_object_ref_sink (clock); gst_system_clock_set_default (clock); g_assert_cmpint (GST_OBJECT_REFCOUNT (static_clock), ==, 1); g_object_unref (static_clock); @@ -680,7 +681,9 @@ GST_START_TEST (test_async_full) /* create master and slave */ master = g_object_new (GST_TYPE_SYSTEM_CLOCK, "name", "TestClockMaster", NULL); + gst_object_ref_sink (master); slave = g_object_new (GST_TYPE_SYSTEM_CLOCK, "name", "TestClockMaster", NULL); + gst_object_ref_sink (slave); GST_OBJECT_FLAG_SET (slave, GST_CLOCK_FLAG_CAN_SET_MASTER); g_object_set (slave, "timeout", 50 * GST_MSECOND, NULL); -- 2.7.4