]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
condition: use structured initialization
authorLennart Poettering <lennart@poettering.net>
Mon, 18 Mar 2019 16:42:56 +0000 (17:42 +0100)
committerLennart Poettering <lennart@poettering.net>
Tue, 19 Mar 2019 14:55:07 +0000 (15:55 +0100)
src/shared/condition.c

index 12c685acd5d06cf2a2437f7fa2a997eb3308ec07..5853b4d61f66b95e871ba999391366df547b6a1e 100644 (file)
@@ -22,6 +22,7 @@
 #include "cgroup-util.h"
 #include "condition.h"
 #include "efivars.h"
+#include "env-file.h"
 #include "extract-word.h"
 #include "fd-util.h"
 #include "fileio.h"
@@ -31,7 +32,6 @@
 #include "list.h"
 #include "macro.h"
 #include "mountpoint-util.h"
-#include "env-file.h"
 #include "parse-util.h"
 #include "path-util.h"
 #include "proc-cmdline.h"
 
 Condition* condition_new(ConditionType type, const char *parameter, bool trigger, bool negate) {
         Condition *c;
-        int r;
 
         assert(type >= 0);
         assert(type < _CONDITION_TYPE_MAX);
         assert((!parameter) == (type == CONDITION_NULL));
 
-        c = new0(Condition, 1);
+        c = new(Condition, 1);
         if (!c)
                 return NULL;
 
-        c->type = type;
-        c->trigger = trigger;
-        c->negate = negate;
+        *c = (Condition) {
+                .type = type,
+                .trigger = trigger,
+                .negate = negate,
+        };
 
-        r = free_and_strdup(&c->parameter, parameter);
-        if (r < 0) {
-                return mfree(c);
+        if (parameter) {
+                c->parameter = strdup(parameter);
+                if (!c->parameter)
+                        return mfree(c);
         }
 
         return c;