[spice-gtk PATCH v1 2/3] spice-pulse: GSimpleAsyncResult compatibility

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Avoid breaking build with glib older then 2.32 which is when
g_simple_async_result_set_check_cancellable was introduced.
---
 gtk/spice-pulse.c | 11 +++++++++++
 1 file changed, 11 insertions(+)

diff --git a/gtk/spice-pulse.c b/gtk/spice-pulse.c
index f101b0c..54ac9ad 100644
--- a/gtk/spice-pulse.c
+++ b/gtk/spice-pulse.c
@@ -22,6 +22,7 @@
 #include "spice-session-priv.h"
 #include "spice-channel-priv.h"
 #include "spice-util-priv.h"
+#include "glib-compat.h"
 
 #include <pulse/glib-mainloop.h>
 #include <pulse/pulseaudio.h>
@@ -979,6 +980,14 @@ static void cancel_task(GCancellable *cancellable, gpointer user_data)
         task->pulse->priv->pending_restore_task = NULL;
     }
 
+#if !GLIB_CHECK_VERSION(2,32,0)
+    /* g_simple_async_result_set_check_cancellable is not present. Set an error
+     * in the GSimpleAsyncResult in case of _finish functions is called */
+    g_simple_async_result_set_error(task->res,
+                                    SPICE_CLIENT_ERROR,
+                                    SPICE_CLIENT_ERROR_FAILED,
+                                    "Operation was cancelled");
+#endif
     /* FIXME: https://bugzilla.gnome.org/show_bug.cgi?id=705395
      * Free the memory in idle */
     g_idle_add(free_async_task, task);
@@ -1148,7 +1157,9 @@ static void pulse_stream_restore_info_async(gboolean is_playback,
                                        callback,
                                        user_data,
                                        pulse_stream_restore_info_async);
+#if GLIB_CHECK_VERSION(2,32,0)
     g_simple_async_result_set_check_cancellable (simple, cancellable);
+#endif
 
     task->res = simple;
     task->pulse = g_object_ref(audio);
-- 
2.1.0

_______________________________________________
Spice-devel mailing list
Spice-devel@xxxxxxxxxxxxxxxxxxxxx
http://lists.freedesktop.org/mailman/listinfo/spice-devel





[Index of Archives]     [Linux ARM Kernel]     [Linux ARM]     [Linux Omap]     [Fedora ARM]     [IETF Annouce]     [Security]     [Bugtraq]     [Linux]     [Linux OMAP]     [Linux MIPS]     [ECOS]     [Asterisk Internet PBX]     [Linux API]     [Monitors]