]> xenbits.xensource.com Git - libvirt.git/commitdiff
virJSONParserInsertValue: Take double pointer for @value
authorPeter Krempa <pkrempa@redhat.com>
Fri, 12 Feb 2021 15:26:09 +0000 (16:26 +0100)
committerPeter Krempa <pkrempa@redhat.com>
Sat, 20 Feb 2021 12:26:38 +0000 (13:26 +0100)
The function calls virJSONValueObjectAppend/virJSONValueArrayAppend, so
by taking a double pointer we can drop the pointer clearing from
callers.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
src/util/virjson.c

index 01161f4f3275accda19a9cf33a053ecfaffc9984..e74b9fca4f0231853e762e6d17a569b7c69901d8 100644 (file)
@@ -1549,10 +1549,10 @@ virJSONValueCopy(const virJSONValue *in)
 #if WITH_YAJL
 static int
 virJSONParserInsertValue(virJSONParserPtr parser,
-                         virJSONValuePtr value)
+                         virJSONValuePtr *value)
 {
     if (!parser->head) {
-        parser->head = value;
+        parser->head = g_steal_pointer(value);
     } else {
         virJSONParserStatePtr state;
         if (!parser->nstate) {
@@ -1571,7 +1571,7 @@ virJSONParserInsertValue(virJSONParserPtr parser,
 
             if (virJSONValueObjectAppend(state->value,
                                          state->key,
-                                         &value) < 0)
+                                         value) < 0)
                 return -1;
 
             VIR_FREE(state->key);
@@ -1584,7 +1584,7 @@ virJSONParserInsertValue(virJSONParserPtr parser,
             }
 
             if (virJSONValueArrayAppend(state->value,
-                                        &value) < 0)
+                                        value) < 0)
                 return -1;
         }   break;
 
@@ -1606,9 +1606,8 @@ virJSONParserHandleNull(void *ctx)
 
     VIR_DEBUG("parser=%p", parser);
 
-    if (virJSONParserInsertValue(parser, value) < 0)
+    if (virJSONParserInsertValue(parser, &value) < 0)
         return 0;
-    value = NULL;
 
     return 1;
 }
@@ -1623,9 +1622,8 @@ virJSONParserHandleBoolean(void *ctx,
 
     VIR_DEBUG("parser=%p boolean=%d", parser, boolean_);
 
-    if (virJSONParserInsertValue(parser, value) < 0)
+    if (virJSONParserInsertValue(parser, &value) < 0)
         return 0;
-    value = NULL;
 
     return 1;
 }
@@ -1641,9 +1639,8 @@ virJSONParserHandleNumber(void *ctx,
 
     VIR_DEBUG("parser=%p str=%s", parser, value->data.number);
 
-    if (virJSONParserInsertValue(parser, value) < 0)
+    if (virJSONParserInsertValue(parser, &value) < 0)
         return 0;
-    value = NULL;
 
     return 1;
 }
@@ -1660,9 +1657,8 @@ virJSONParserHandleString(void *ctx,
 
     VIR_DEBUG("parser=%p str=%p", parser, (const char *)stringVal);
 
-    if (virJSONParserInsertValue(parser, value) < 0)
+    if (virJSONParserInsertValue(parser, &value) < 0)
         return 0;
-    value = NULL;
 
     return 1;
 }
@@ -1698,9 +1694,8 @@ virJSONParserHandleStartMap(void *ctx)
 
     VIR_DEBUG("parser=%p", parser);
 
-    if (virJSONParserInsertValue(parser, value) < 0)
+    if (virJSONParserInsertValue(parser, &value) < 0)
         return 0;
-    value = NULL;
 
     if (VIR_REALLOC_N(parser->state,
                       parser->nstate + 1) < 0) {
@@ -1747,9 +1742,8 @@ virJSONParserHandleStartArray(void *ctx)
 
     VIR_DEBUG("parser=%p", parser);
 
-    if (virJSONParserInsertValue(parser, value) < 0)
+    if (virJSONParserInsertValue(parser, &value) < 0)
         return 0;
-    value = NULL;
 
     if (VIR_REALLOC_N(parser->state,
                       parser->nstate + 1) < 0)