chiark / gitweb /
sd-bus: use proper cleanup macro
[elogind.git] / src / libelogind / sd-bus / bus-track.c
index 048178550b5fb5a50cff72ae16842cea31bd6929..e43891be258477a686b397855e741d979e2e613e 100644 (file)
@@ -90,6 +90,9 @@ _public_ int sd_bus_track_new(
         assert_return(bus, -EINVAL);
         assert_return(track, -EINVAL);
 
+        if (!bus->bus_client)
+                return -EINVAL;
+
         t = new0(sd_bus_track, 1);
         if (!t)
                 return -ENOMEM;
@@ -139,12 +142,11 @@ _public_ sd_bus_track* sd_bus_track_unref(sd_bus_track *track) {
         return NULL;
 }
 
-static int on_name_owner_changed(sd_bus *bus, sd_bus_message *message, void *userdata, sd_bus_error *error) {
+static int on_name_owner_changed(sd_bus_message *message, void *userdata, sd_bus_error *error) {
         sd_bus_track *track = userdata;
         const char *name, *old, *new;
         int r;
 
-        assert(bus);
         assert(message);
         assert(track);
 
@@ -246,7 +248,7 @@ _public_ const char* sd_bus_track_first(sd_bus_track *track) {
         track->modified = false;
         track->iterator = ITERATOR_FIRST;
 
-        hashmap_iterate(track->names, &track->iterator, (const void**) &n);
+        hashmap_iterate(track->names, &track->iterator, NULL, (const void**) &n);
         return n;
 }
 
@@ -259,7 +261,7 @@ _public_ const char* sd_bus_track_next(sd_bus_track *track) {
         if (track->modified)
                 return NULL;
 
-        hashmap_iterate(track->names, &track->iterator, (const void**) &n);
+        hashmap_iterate(track->names, &track->iterator, NULL, (const void**) &n);
         return n;
 }