chiark / gitweb /
bus: simplify bus_message_read_strv_extend()
authorDavid Herrmann <dh.herrmann@gmail.com>
Wed, 8 Apr 2015 09:20:10 +0000 (11:20 +0200)
committerSven Eden <yamakuzure@gmx.net>
Tue, 14 Mar 2017 06:53:04 +0000 (07:53 +0100)
Avoid unbound for(;;) loop and use the established coding-style:
  while ((r = sd_bus_message_read*(...)) > 0) {
  }
  if (r < 0)
          return r;

This is much easier to read and used all over the code base.

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

index 70c38cf487be80bb14b7493c8e1727f8fc6991af..6ee209dd1be88d81dc6a2ff943d43028e4420536 100644 (file)
@@ -5550,6 +5550,7 @@ int bus_message_get_blob(sd_bus_message *m, void **buffer, size_t *sz) {
 }
 
 int bus_message_read_strv_extend(sd_bus_message *m, char ***l) {
+        const char *s;
         int r;
 
         assert(m);
@@ -5559,19 +5560,13 @@ int bus_message_read_strv_extend(sd_bus_message *m, char ***l) {
         if (r <= 0)
                 return r;
 
-        for (;;) {
-                const char *s;
-
-                r = sd_bus_message_read_basic(m, 's', &s);
-                if (r < 0)
-                        return r;
-                if (r == 0)
-                        break;
-
+        while ((r = sd_bus_message_read_basic(m, 's', &s)) > 0) {
                 r = strv_extend(l, s);
                 if (r < 0)
                         return r;
         }
+        if (r < 0)
+                return r;
 
         r = sd_bus_message_exit_container(m);
         if (r < 0)