chiark / gitweb /
sd-bus: style nitpick node_vtable_get_userdata()
authorAlan Jenkins <alan.christopher.jenkins@gmail.com>
Sat, 16 Sep 2017 11:32:59 +0000 (12:32 +0100)
committerSven Eden <yamakuzure@gmx.net>
Sat, 16 Sep 2017 11:32:59 +0000 (12:32 +0100)
It's confusing to use a single void* to store data with two different
types, i.e. a userdata value which is safe to pass to ->find(), and a
userdata value which identifies the found object.

Name the latter `found_u`.  This naming treats (!c->find) as a degenerate
case.  (I.e. at that point, we know the object has already been found :).

src/libelogind/sd-bus/bus-objects.c

index 0a58a83889953cb5fdaf650ae4228081569b9a87..6966f73a1247c16038f62281ef1f3a392e5c7798 100644 (file)
@@ -38,7 +38,7 @@ static int node_vtable_get_userdata(
                 sd_bus_error *error) {
 
         sd_bus_slot *s;
-        void *u;
+        void *u, *found_u;
         int r;
 
         assert(bus);
@@ -50,7 +50,7 @@ static int node_vtable_get_userdata(
         if (c->find) {
                 bus->current_slot = sd_bus_slot_ref(s);
                 bus->current_userdata = u;
-                r = c->find(bus, path, c->interface, u, &u, error);
+                r = c->find(bus, path, c->interface, u, &found_u, error);
                 bus->current_userdata = NULL;
                 bus->current_slot = sd_bus_slot_unref(s);
 
@@ -60,10 +60,11 @@ static int node_vtable_get_userdata(
                         return -sd_bus_error_get_errno(error);
                 if (r == 0)
                         return r;
-        }
+        } else
+                found_u = u;
 
         if (userdata)
-                *userdata = u;
+                *userdata = found_u;
 
         return 1;
 }