]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
logind: use loop instead of repeated code
authorZbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl>
Wed, 15 Jan 2020 10:37:49 +0000 (11:37 +0100)
committerZbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl>
Fri, 17 Jan 2020 07:13:09 +0000 (08:13 +0100)
https://github.com/systemd/systemd/pull/14096#discussion_r350953689

src/login/logind-user.c

index fdc6448a651d38da6820da84d927e35230c1cddf..9ceb33cde911b60d014c756e914b5ea33d03d4ad 100644 (file)
@@ -405,35 +405,23 @@ static int user_update_slice(User *u) {
         if (r < 0)
                 return bus_log_create_error(r);
 
-        if (u->user_record->tasks_max != UINT64_MAX) {
-                r = sd_bus_message_append(m, "(sv)", "TasksMax", "t", u->user_record->tasks_max);
-                if (r < 0)
-                        return bus_log_create_error(r);
-        }
-
-        if (u->user_record->memory_max != UINT64_MAX) {
-                r = sd_bus_message_append(m, "(sv)", "MemoryMax", "t", u->user_record->memory_max);
-                if (r < 0)
-                        return bus_log_create_error(r);
-        }
-
-        if (u->user_record->memory_high != UINT64_MAX) {
-                r = sd_bus_message_append(m, "(sv)", "MemoryHigh", "t", u->user_record->memory_high);
-                if (r < 0)
-                        return bus_log_create_error(r);
-        }
-
-        if (u->user_record->cpu_weight != UINT64_MAX) {
-                r = sd_bus_message_append(m, "(sv)", "CPUWeight", "t", u->user_record->cpu_weight);
-                if (r < 0)
-                        return bus_log_create_error(r);
-        }
+        const struct {
+                const char *name;
+                uint64_t value;
+        } settings[] = {
+                { "TasksMax",   u->user_record->tasks_max   },
+                { "MemoryMax",  u->user_record->memory_max  },
+                { "MemoryHigh", u->user_record->memory_high },
+                { "CPUWeight",  u->user_record->cpu_weight  },
+                { "IOWeight",   u->user_record->io_weight   },
+        };
 
-        if (u->user_record->io_weight != UINT64_MAX) {
-                r = sd_bus_message_append(m, "(sv)", "IOWeight", "t", u->user_record->io_weight);
-                if (r < 0)
-                        return bus_log_create_error(r);
-        }
+        for (size_t i = 0; i < ELEMENTSOF(settings); i++)
+                if (settings[i].value != UINT64_MAX) {
+                        r = sd_bus_message_append(m, "(sv)", settings[i].name, "t", settings[i].value);
+                        if (r < 0)
+                                return bus_log_create_error(r);
+                }
 
         r = sd_bus_message_close_container(m);
         if (r < 0)