mirror of
https://gitlab.com/libvirt/libvirt.git
synced 2025-03-20 06:50:22 +03:00
util: json: Introduce virJSONValueObjectReplaceValue
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>
This commit is contained in:
parent
5a781738d1
commit
a2c758398e
@ -2567,6 +2567,7 @@ virJSONValueObjectHasKey;
|
||||
virJSONValueObjectKeysNumber;
|
||||
virJSONValueObjectPrependString;
|
||||
virJSONValueObjectRemoveKey;
|
||||
virJSONValueObjectReplaceValue;
|
||||
virJSONValueObjectStealArray;
|
||||
virJSONValueObjectStealObject;
|
||||
virJSONValueToBuffer;
|
||||
|
@ -1149,6 +1149,26 @@ virJSONValueObjectGetString(virJSONValue *object,
|
||||
}
|
||||
|
||||
|
||||
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
|
||||
|
@ -248,6 +248,12 @@ virJSONValueObjectRemoveKey(virJSONValue *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);
|
||||
|
Loading…
x
Reference in New Issue
Block a user