]> git.ipfire.org Git - thirdparty/libvirt.git/commitdiff
virJSONValueObjectAddVArgs: Take double pointer
authorPeter Krempa <pkrempa@redhat.com>
Tue, 9 Nov 2021 15:23:01 +0000 (16:23 +0100)
committerPeter Krempa <pkrempa@redhat.com>
Wed, 17 Nov 2021 11:04:11 +0000 (12:04 +0100)
Pass in the double pointer from the wrappers directly to
virJSONValueObjectAddVArgs, which will allow us to directly allocate the
new objects inside the function.

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

index 810dac209d7b0a88fc1fb8ef86a4ee15d730c24a..398bef2e9675bf05b820f7be5ab555f91590600d 100644 (file)
@@ -2889,7 +2889,7 @@ qemuMonitorCreateObjectProps(virJSONValue **propsret,
 
     va_start(args, alias);
 
-    rc = virJSONValueObjectAddVArgs(props, args);
+    rc = virJSONValueObjectAddVArgs(&props, args);
 
     va_end(args);
 
index 446b67530974d03b39d98a16317301a06ca2f183..bd71b849608f56e5d46d6698909a39c124467750 100644 (file)
@@ -103,7 +103,7 @@ virJSONValueGetType(const virJSONValue *value)
 
 /**
  * virJSONValueObjectAddVArgs:
- * @obj: JSON object to add the values to
+ * @objptr: pointer to a pointer to a JSON object to add the values to
  * @args: a key-value argument pairs, terminated by NULL
  *
  * Adds the key-value pairs supplied as variable argument list to @obj.
@@ -152,9 +152,10 @@ virJSONValueGetType(const virJSONValue *value)
  * in case of no error but nothing was filled.
  */
 int
-virJSONValueObjectAddVArgs(virJSONValue *obj,
+virJSONValueObjectAddVArgs(virJSONValue **objptr,
                            va_list args)
 {
+    virJSONValue *obj = *objptr;
     char type;
     char *key;
     int rc;
@@ -354,7 +355,7 @@ virJSONValueObjectAdd(virJSONValue **objptr, ...)
     int ret;
 
     va_start(args, objptr);
-    ret = virJSONValueObjectAddVArgs(*objptr, args);
+    ret = virJSONValueObjectAddVArgs(objptr, args);
     va_end(args);
 
     return ret;
@@ -370,7 +371,7 @@ virJSONValueObjectCreateVArgs(virJSONValue **obj,
     *obj = virJSONValueNewObject();
 
     /* free the object on error, or if no value objects were added */
-    if ((ret = virJSONValueObjectAddVArgs(*obj, args)) <= 0) {
+    if ((ret = virJSONValueObjectAddVArgs(obj, args)) <= 0) {
         virJSONValueFree(*obj);
         *obj = NULL;
     }
index c5d969f0fc81a3596e600f21180a436d3ff54055..0d8dad754d01d32d502c84f8b6b1614a285ad8f1 100644 (file)
@@ -50,7 +50,7 @@ int virJSONValueObjectCreateVArgs(virJSONValue **obj, va_list args)
     ATTRIBUTE_NONNULL(1);
 int virJSONValueObjectAdd(virJSONValue **obj, ...)
     ATTRIBUTE_NONNULL(1) G_GNUC_NULL_TERMINATED;
-int virJSONValueObjectAddVArgs(virJSONValue *obj, va_list args)
+int virJSONValueObjectAddVArgs(virJSONValue **objptr, va_list args)
     ATTRIBUTE_NONNULL(1);