]> git.ipfire.org Git - thirdparty/libvirt.git/commitdiff
util: json: Use VIR_APPEND_ELEMENT in virJSONValueObjectAppend
authorPeter Krempa <pkrempa@redhat.com>
Tue, 5 Feb 2019 17:36:59 +0000 (18:36 +0100)
committerPeter Krempa <pkrempa@redhat.com>
Wed, 10 Apr 2019 14:34:57 +0000 (16:34 +0200)
The function open-codes addition into an array. Use the helper instead.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
src/util/virjson.c

index bd5084741899691da7454f8abe6dcc267f243000..d2664b9d57715ab172246281c59c9c855c8d8fb5 100644 (file)
@@ -611,7 +611,8 @@ virJSONValueObjectAppend(virJSONValuePtr object,
                          const char *key,
                          virJSONValuePtr value)
 {
-    char *newkey;
+    virJSONObjectPair pair = { NULL, value };
+    int ret = -1;
 
     if (object->type != VIR_JSON_TYPE_OBJECT) {
         virReportError(VIR_ERR_INTERNAL_ERROR, "%s",
@@ -624,20 +625,14 @@ virJSONValueObjectAppend(virJSONValuePtr object,
         return -1;
     }
 
-    if (VIR_STRDUP(newkey, key) < 0)
-        return -1;
-
-    if (VIR_REALLOC_N(object->data.object.pairs,
-                      object->data.object.npairs + 1) < 0) {
-        VIR_FREE(newkey);
+    if (VIR_STRDUP(pair.key, key) < 0)
         return -1;
-    }
 
-    object->data.object.pairs[object->data.object.npairs].key = newkey;
-    object->data.object.pairs[object->data.object.npairs].value = value;
-    object->data.object.npairs++;
+    ret = VIR_APPEND_ELEMENT(object->data.object.pairs,
+                             object->data.object.npairs, pair);
 
-    return 0;
+    VIR_FREE(pair.key);
+    return ret;
 }