From dec7875a6e23212021e4d9080330a42832dfe02a Mon Sep 17 00:00:00 2001
From: Edward Rudd <urkle@outoforder.cc>
Date: Tue, 15 Jun 2021 01:40:19 +0000
Subject: [PATCH] update SDL soruce to 2.0.14

---
 source/src/core/linux/SDL_dbus.c |   26 +++++++++++++++++++++-----
 1 files changed, 21 insertions(+), 5 deletions(-)

diff --git a/source/src/core/linux/SDL_dbus.c b/source/src/core/linux/SDL_dbus.c
index 13880cb..4a3b0df 100644
--- a/source/src/core/linux/SDL_dbus.c
+++ b/source/src/core/linux/SDL_dbus.c
@@ -57,6 +57,10 @@
     SDL_DBUS_SYM(message_new_method_call);
     SDL_DBUS_SYM(message_append_args);
     SDL_DBUS_SYM(message_append_args_valist);
+    SDL_DBUS_SYM(message_iter_init_append);
+    SDL_DBUS_SYM(message_iter_open_container);
+    SDL_DBUS_SYM(message_iter_append_basic);
+    SDL_DBUS_SYM(message_iter_close_container);
     SDL_DBUS_SYM(message_get_args);
     SDL_DBUS_SYM(message_get_args_valist);
     SDL_DBUS_SYM(message_iter_init);
@@ -65,6 +69,7 @@
     SDL_DBUS_SYM(message_iter_get_arg_type);
     SDL_DBUS_SYM(message_iter_recurse);
     SDL_DBUS_SYM(message_unref);
+    SDL_DBUS_SYM(threads_init_default);
     SDL_DBUS_SYM(error_init);
     SDL_DBUS_SYM(error_is_set);
     SDL_DBUS_SYM(error_free);
@@ -124,19 +129,30 @@
             return;  /* oh well */
         }
 
-        dbus.error_init(&err);
-        dbus.session_conn = dbus.bus_get_private(DBUS_BUS_SESSION, &err);
-        if (!dbus.error_is_set(&err)) {
-            dbus.system_conn = dbus.bus_get_private(DBUS_BUS_SYSTEM, &err);
+        if (!dbus.threads_init_default()) {
+            is_dbus_available = SDL_FALSE;
+            return;
         }
+
+        dbus.error_init(&err);
+        /* session bus is required */
+
+        dbus.session_conn = dbus.bus_get_private(DBUS_BUS_SESSION, &err);
         if (dbus.error_is_set(&err)) {
             dbus.error_free(&err);
             SDL_DBus_Quit();
             is_dbus_available = SDL_FALSE;
             return;  /* oh well */
         }
-        dbus.connection_set_exit_on_disconnect(dbus.system_conn, 0);
         dbus.connection_set_exit_on_disconnect(dbus.session_conn, 0);
+
+        /* system bus is optional */
+        dbus.system_conn = dbus.bus_get_private(DBUS_BUS_SYSTEM, &err);
+        if (!dbus.error_is_set(&err)) {
+            dbus.connection_set_exit_on_disconnect(dbus.system_conn, 0);
+        }
+
+        dbus.error_free(&err);
     }
 }
 

--
Gitblit v1.9.3