[PATCH] logind: Use dbus_bool_t for bool types in dbus calls

Kristian Høgsberg krh at bitplanet.net
Wed Nov 20 16:39:56 PST 2013

The gcc built-in 'bool' type is not the same size as dbus_bool_t, which is
an uint32_t.  Passing a pointer to bool where dbus expects a uint32_t *
doesn't work.
 src/logind-util.c | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)


This fixes a crash that Artie hit when testing this.  Btw, did you get
a chance to update the logind error paths to return -1 and set errno
like we discussed?


diff --git a/src/logind-util.c b/src/logind-util.c
index 6bd0c26..a58265c 100644
--- a/src/logind-util.c
+++ b/src/logind-util.c
@@ -69,8 +69,9 @@ weston_logind_take_device(struct weston_logind *wl, uint32_t major,
 			  uint32_t minor, bool *paused_out)
 	DBusMessage *m, *reply;
-	bool b, paused;
+	bool b;
 	int r, fd;
+	dbus_bool_t paused;
 	m = dbus_message_new_method_call("org.freedesktop.login1",
@@ -287,7 +288,7 @@ get_active_cb(DBusPendingCall *pending, void *data)
 	DBusMessage *m;
 	DBusMessageIter iter, sub;
 	int type;
-	bool b;
+	dbus_bool_t b;
 	wl->pending_active = NULL;

More information about the wayland-devel mailing list