From 1c6cd678193f8fdaa8728a0c75e42d93741ec758 Mon Sep 17 00:00:00 2001 From: Alex Baines Date: Sun, 6 Jul 2014 22:15:31 +0100 Subject: [PATCH] Call dbus_shutdown to make valgrind happy. --- src/core/linux/SDL_dbus.c | 4 +++- src/core/linux/SDL_dbus.h | 3 ++- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/src/core/linux/SDL_dbus.c b/src/core/linux/SDL_dbus.c index e865a8c9f13ad..d9dbd9613214e 100644 --- a/src/core/linux/SDL_dbus.c +++ b/src/core/linux/SDL_dbus.c @@ -67,6 +67,7 @@ load_dbus_syms(void) SDL_DBUS_SYM(error_free); SDL_DBUS_SYM(get_local_machine_id); SDL_DBUS_SYM(free); + SDL_DBUS_SYM(shutdown); #undef SDL_DBUS_SYM #undef SDL_DBUS_SYM2 @@ -106,7 +107,7 @@ LoadDBUSLibrary(void) void SDL_DBus_Init(void) { - if (LoadDBUSLibrary() != -1) { + if (!dbus.session_conn && LoadDBUSLibrary() != -1) { DBusError err; dbus.error_init(&err); dbus.session_conn = dbus.bus_get_private(DBUS_BUS_SESSION, &err); @@ -128,6 +129,7 @@ SDL_DBus_Quit(void) if (dbus.session_conn) { dbus.connection_close(dbus.session_conn); dbus.connection_unref(dbus.session_conn); + dbus.shutdown(); SDL_memset(&dbus, 0, sizeof(dbus)); } UnloadDBUSLibrary(); diff --git a/src/core/linux/SDL_dbus.h b/src/core/linux/SDL_dbus.h index 285b39d935153..0fbb21422266d 100644 --- a/src/core/linux/SDL_dbus.h +++ b/src/core/linux/SDL_dbus.h @@ -62,7 +62,8 @@ typedef struct SDL_DBusContext { dbus_bool_t (*error_is_set)(const DBusError *); void (*error_free)(DBusError *); char *(*get_local_machine_id)(void); - void (*free)(void *); + void (*free)(void *); + void (*shutdown)(void); } SDL_DBusContext;