From 8298a5bd69eaec25626628d5f407374449240033 Mon Sep 17 00:00:00 2001 From: Peter Krempa Date: Fri, 12 Feb 2021 16:26:09 +0100 Subject: [PATCH] virJSONParserInsertValue: Take double pointer for @value The function calls virJSONValueObjectAppend/virJSONValueArrayAppend, so by taking a double pointer we can drop the pointer clearing from callers. Signed-off-by: Peter Krempa Reviewed-by: Michal Privoznik --- src/util/virjson.c | 26 ++++++++++---------------- 1 file changed, 10 insertions(+), 16 deletions(-) diff --git a/src/util/virjson.c b/src/util/virjson.c index 01161f4f32..e74b9fca4f 100644 --- a/src/util/virjson.c +++ b/src/util/virjson.c @@ -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)