devicemonitor: g_queue_clear_full introduced in glib 2.60
authorRuben Gonzalez <rgonzalez@fluendo.com>
Mon, 25 Oct 2021 19:55:25 +0000 (21:55 +0200)
committerRuben Gonzalez <rgonzalez@fluendo.com>
Mon, 25 Oct 2021 19:55:25 +0000 (21:55 +0200)
The GStreamer dependency is glib >=2.56.0. Therefore, define
g_queue_clear_full if glib < 2.60.

Issue added in commit 1912bcbc

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1251>

subprojects/gstreamer/gst/gstdevicemonitor.c

index 54a60e4..e54dfac 100644 (file)
@@ -357,6 +357,18 @@ gst_device_monitor_dispose (GObject * object)
   G_OBJECT_CLASS (gst_device_monitor_parent_class)->dispose (object);
 }
 
+#if !GLIB_CHECK_VERSION(2, 60, 0)
+#define g_queue_clear_full queue_clear_full
+static void
+queue_clear_full (GQueue * queue, GDestroyNotify free_func)
+{
+  gpointer data;
+
+  while ((data = g_queue_pop_head (queue)) != NULL)
+    free_func (data);
+}
+#endif
+
 /**
  * gst_device_monitor_get_devices:
  * @monitor: A #GstDeviceProvider