#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) {
if (virJSONValueObjectAppend(state->value,
state->key,
- &value) < 0)
+ value) < 0)
return -1;
VIR_FREE(state->key);
}
if (virJSONValueArrayAppend(state->value,
- &value) < 0)
+ value) < 0)
return -1;
} break;
VIR_DEBUG("parser=%p", parser);
- if (virJSONParserInsertValue(parser, value) < 0)
+ if (virJSONParserInsertValue(parser, &value) < 0)
return 0;
- value = NULL;
return 1;
}
VIR_DEBUG("parser=%p boolean=%d", parser, boolean_);
- if (virJSONParserInsertValue(parser, value) < 0)
+ if (virJSONParserInsertValue(parser, &value) < 0)
return 0;
- value = NULL;
return 1;
}
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;
}
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;
}
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) {
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)