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",
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;
}