The new helper replaces the 'value' part of the key-value tuple in an
object. The advantage of this new helper is that it preserves the
ordering of the key in the object when compared to a combination of
stealing the old key and adding a new value. This will be needed for a
new test/helper for validating and modifying qemu capabilities data.
Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
virJSONValueObjectKeysNumber;
virJSONValueObjectPrependString;
virJSONValueObjectRemoveKey;
+virJSONValueObjectReplaceValue;
virJSONValueObjectStealArray;
virJSONValueObjectStealObject;
virJSONValueToBuffer;
}
+void
+virJSONValueObjectReplaceValue(virJSONValue *object,
+ const char *key,
+ virJSONValue **newval)
+{
+ size_t i;
+
+ if (object->type != VIR_JSON_TYPE_OBJECT ||
+ !*newval)
+ return;
+
+ for (i = 0; i < object->data.object.npairs; i++) {
+ if (STREQ(object->data.object.pairs[i].key, key)) {
+ virJSONValueFree(object->data.object.pairs[i].value);
+ object->data.object.pairs[i].value = g_steal_pointer(newval);
+ }
+ }
+}
+
+
/**
* virJSONValueObjectGetStringOrNumber:
* @object: JSON value object
virJSONValue **value)
ATTRIBUTE_NONNULL(1) ATTRIBUTE_NONNULL(2);
+void
+virJSONValueObjectReplaceValue(virJSONValue *object,
+ const char *key,
+ virJSONValue **newval)
+ ATTRIBUTE_NONNULL(1) ATTRIBUTE_NONNULL(2) ATTRIBUTE_NONNULL(3);
+
int
virJSONValueArrayAppendString(virJSONValue *object,
const char *value);