From 141062c4d6d5d37a10bd1669f4ccf8ffd64f42f3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tim-Philipp=20M=C3=BCller?= Date: Sat, 1 Aug 2020 00:22:28 +0100 Subject: [PATCH] examples: compositor: fix build with older GLib versions Don't use g_hash_table_steal_extended() which was only added in 2.58. Fixes #801 Part-of: --- tests/examples/compositor/signals.c | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/tests/examples/compositor/signals.c b/tests/examples/compositor/signals.c index 8aa51c7ef9..0075ab0550 100644 --- a/tests/examples/compositor/signals.c +++ b/tests/examples/compositor/signals.c @@ -35,8 +35,7 @@ check_aggregated_buffer (GstElement * agg, GstPad * pad, gst_aggregator_peek_next_sample (GST_AGGREGATOR (agg), GST_AGGREGATOR_PAD (pad)); - g_hash_table_steal_extended (consumed_buffers, pad, NULL, - (gpointer *) & pad_consumed_buffers); + pad_consumed_buffers = g_hash_table_lookup (consumed_buffers, pad); for (tmp = pad_consumed_buffers; tmp; tmp = tmp->next) { GstBuffer *consumed_buffer = (GstBuffer *) tmp->data; @@ -56,6 +55,7 @@ check_aggregated_buffer (GstElement * agg, GstPad * pad, } g_list_free_full (pad_consumed_buffers, (GDestroyNotify) gst_buffer_unref); + g_hash_table_steal (consumed_buffers, pad); return TRUE; } @@ -73,14 +73,18 @@ pad_buffer_consumed_cb (GstAggregatorPad * pad, GstBuffer * buffer, GHashTable * consumed_buffers) { GList *pad_consumed_buffers; + gboolean was_empty; - g_hash_table_steal_extended (consumed_buffers, pad, NULL, - (gpointer *) & pad_consumed_buffers); + pad_consumed_buffers = g_hash_table_lookup (consumed_buffers, pad); + + was_empty = (pad_consumed_buffers == NULL); pad_consumed_buffers = g_list_append (pad_consumed_buffers, gst_buffer_ref (buffer)); - g_hash_table_insert (consumed_buffers, pad, pad_consumed_buffers); + /* we know the list's head pointer doesn't change when items get appended */ + if (was_empty) + g_hash_table_insert (consumed_buffers, pad, pad_consumed_buffers); } static gboolean