[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(-)

David,

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?

Kristian

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",
 					 wl->spath,
@@ -287,7 +288,7 @@ get_active_cb(DBusPendingCall *pending, void *data)
 	DBusMessage *m;
 	DBusMessageIter iter, sub;
 	int type;
-	bool b;
+	dbus_bool_t b;
 
 	dbus_pending_call_unref(wl->pending_active);
 	wl->pending_active = NULL;
-- 
1.8.3.1



More information about the wayland-devel mailing list