diff options
Diffstat (limited to 'src/modules/reserve.c')
-rw-r--r-- | src/modules/reserve.c | 22 |
1 files changed, 8 insertions, 14 deletions
diff --git a/src/modules/reserve.c b/src/modules/reserve.c index 9a9591d2..09bc46cb 100644 --- a/src/modules/reserve.c +++ b/src/modules/reserve.c @@ -43,16 +43,15 @@ struct rd_device { DBusConnection *connection; - int owning:1; - int registered:1; - int filtering:1; - int gave_up:1; + unsigned owning:1; + unsigned registered:1; + unsigned filtering:1; + unsigned gave_up:1; rd_request_cb_t request_cb; void *userdata; }; - #define SERVICE_PREFIX "org.freedesktop.ReserveDevice1." #define OBJECT_PREFIX "/org/freedesktop/ReserveDevice1/" @@ -297,6 +296,7 @@ static DBusHandlerResult filter_handler( dbus_error_init(&error); d = userdata; + assert(d->ref >= 1); if (dbus_message_is_signal(m, "org.freedesktop.DBus", "NameLost")) { const char *name; @@ -560,7 +560,7 @@ void rd_release( assert(d->ref > 0); - if (--d->ref) + if (--d->ref > 0) return; @@ -575,17 +575,11 @@ void rd_release( d->connection, d->object_path); - if (d->owning) { - DBusError error; - dbus_error_init(&error); - + if (d->owning) dbus_bus_release_name( d->connection, d->service_name, - &error); - - dbus_error_free(&error); - } + NULL); free(d->device_name); free(d->application_name); |