[libvirt] [PATCH 11/11] util: json: Use VIR_APPEND_ELEMENT in virJSONValueObjectAppend

Peter Krempa pkrempa at redhat.com
Fri Apr 5 16:04:23 UTC 2019


The function open-codes addition into an array. Use the helper instead.

Signed-off-by: Peter Krempa <pkrempa at redhat.com>
---
 src/util/virjson.c | 19 +++++++------------
 1 file changed, 7 insertions(+), 12 deletions(-)

diff --git a/src/util/virjson.c b/src/util/virjson.c
index 1dceb746b9..7b874bf2ec 100644
--- a/src/util/virjson.c
+++ b/src/util/virjson.c
@@ -609,7 +609,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",
@@ -622,20 +623,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;
 }


-- 
2.20.1




More information about the libvir-list mailing list