chiark / gitweb /
Introduce strv_consume which takes ownership
[elogind.git] / src / shared / strv.c
index 13deba7be7780a7978d52d22b5e998a427af15f5..67706dc381dfde9ecbd2fcd299d8a076cdb3b588 100644 (file)
@@ -378,9 +378,18 @@ int strv_push(char ***l, char *value) {
         return 0;
 }
 
+int strv_consume(char ***l, char *value) {
+        int r;
+
+        r = strv_push(l, value);
+        if (r < 0)
+                free(value);
+
+        return r;
+}
+
 int strv_extend(char ***l, const char *value) {
         char *v;
-        int r;
 
         if (!value)
                 return 0;
@@ -389,11 +398,7 @@ int strv_extend(char ***l, const char *value) {
         if (!v)
                 return -ENOMEM;
 
-        r = strv_push(l, v);
-        if (r < 0)
-                free(v);
-
-        return r;
+        return strv_consume(l, v);
 }
 
 char **strv_uniq(char **l) {