[PATCH 0/6] json helper cleanups

Peter Krempa (6): qemuBlockStorageSourceGetRBDProps: Simplify generation of auth modes Replace open coded virJSONValueArrayAppendString util: json: Don't copy string in virJSONValueNewString util: json: Open-code only call of virJSONValueNewStringLen util: json: Remove virJSONValueIsNull/virJSONValueObjectIsNull util: virjson.h: Reformat headers to conform with new style src/libvirt_private.syms | 3 - src/qemu/qemu_agent.c | 4 +- src/qemu/qemu_block.c | 10 +- src/util/virjson.c | 57 +------ src/util/virjson.h | 315 +++++++++++++++++++++++++++------------ src/util/virmacmap.c | 4 +- tests/virjsontest.c | 4 +- 7 files changed, 231 insertions(+), 166 deletions(-) -- 2.31.1

The auth mode array is static, parse it from a JSON string. Signed-off-by: Peter Krempa <pkrempa@redhat.com> --- src/qemu/qemu_block.c | 10 +--------- 1 file changed, 1 insertion(+), 9 deletions(-) diff --git a/src/qemu/qemu_block.c b/src/qemu/qemu_block.c index 2e606e99b4..e5ff653a60 100644 --- a/src/qemu/qemu_block.c +++ b/src/qemu/qemu_block.c @@ -881,7 +881,6 @@ qemuBlockStorageSourceGetRBDProps(virStorageSource *src, const char *encformat; const char *username = NULL; g_autoptr(virJSONValue) authmodes = NULL; - g_autoptr(virJSONValue) mode = NULL; const char *keysecret = NULL; if (src->nhosts > 0 && @@ -892,14 +891,7 @@ qemuBlockStorageSourceGetRBDProps(virStorageSource *src, username = srcPriv->secinfo->username; keysecret = srcPriv->secinfo->alias; /* the auth modes are modelled after our old command line generator */ - authmodes = virJSONValueNewArray(); - - if (!(mode = virJSONValueNewString("cephx")) || - virJSONValueArrayAppend(authmodes, &mode) < 0) - return NULL; - - if (!(mode = virJSONValueNewString("none")) || - virJSONValueArrayAppend(authmodes, &mode) < 0) + if (!(authmodes = virJSONValueFromString("[\"cephx\",\"none\"]"))) return NULL; } -- 2.31.1

In two instances we've created a string virJSONValue just to append it to the array. Replace it by use of the virJSONValueArrayAppendString helper. Signed-off-by: Peter Krempa <pkrempa@redhat.com> --- src/qemu/qemu_agent.c | 4 +--- src/util/virmacmap.c | 4 +--- 2 files changed, 2 insertions(+), 6 deletions(-) diff --git a/src/qemu/qemu_agent.c b/src/qemu/qemu_agent.c index e2107e5cbf..cb3bf97415 100644 --- a/src/qemu/qemu_agent.c +++ b/src/qemu/qemu_agent.c @@ -1168,9 +1168,7 @@ qemuAgentMakeStringsArray(const char **strings, unsigned int len) g_autoptr(virJSONValue) ret = virJSONValueNewArray(); for (i = 0; i < len; i++) { - g_autoptr(virJSONValue) str = virJSONValueNewString(strings[i]); - - if (virJSONValueArrayAppend(ret, &str) < 0) + if (virJSONValueArrayAppendString(ret, strings[i]) < 0) return NULL; } diff --git a/src/util/virmacmap.c b/src/util/virmacmap.c index 0b7b758c6d..cf554205a8 100644 --- a/src/util/virmacmap.c +++ b/src/util/virmacmap.c @@ -214,9 +214,7 @@ virMACMapHashDumper(void *payload, GSList *next; for (next = macs; next; next = next->next) { - g_autoptr(virJSONValue) m = virJSONValueNewString((const char *) next->data); - - if (virJSONValueArrayAppend(arr, &m) < 0) + if (virJSONValueArrayAppendString(arr, (const char *) next->data) < 0) return -1; } -- 2.31.1

With 'g_strdup' not needing error handling we can ask callers to pass a copy of the string which will be adopted by the JSON value. Signed-off-by: Peter Krempa <pkrempa@redhat.com> --- src/util/virjson.c | 17 +++++++---------- src/util/virjson.h | 2 +- tests/virjsontest.c | 4 ++-- 3 files changed, 10 insertions(+), 13 deletions(-) diff --git a/src/util/virjson.c b/src/util/virjson.c index dbc5b7840c..37301bb87e 100644 --- a/src/util/virjson.c +++ b/src/util/virjson.c @@ -412,7 +412,7 @@ virJSONValueHashFree(void *opaque) virJSONValue * -virJSONValueNewString(const char *data) +virJSONValueNewString(char *data) { virJSONValue *val; @@ -422,7 +422,7 @@ virJSONValueNewString(const char *data) val = g_new0(virJSONValue, 1); val->type = VIR_JSON_TYPE_STRING; - val->data.string = g_strdup(data); + val->data.string = data; return val; } @@ -608,12 +608,9 @@ virJSONValueObjectInsertString(virJSONValue *object, const char *value, bool prepend) { - virJSONValue *jvalue = virJSONValueNewString(value); - if (!jvalue) - return -1; - if (virJSONValueObjectInsert(object, key, &jvalue, prepend) < 0) - return -1; - return 0; + g_autoptr(virJSONValue) jvalue = virJSONValueNewString(g_strdup(value)); + + return virJSONValueObjectInsert(object, key, &jvalue, prepend); } @@ -775,7 +772,7 @@ int virJSONValueArrayAppendString(virJSONValue *object, const char *value) { - g_autoptr(virJSONValue) jvalue = virJSONValueNewString(value); + g_autoptr(virJSONValue) jvalue = virJSONValueNewString(g_strdup(value)); if (virJSONValueArrayAppend(object, &jvalue) < 0) return -1; @@ -1438,7 +1435,7 @@ virJSONValueCopy(const virJSONValue *in) /* No need to error out in the following cases */ case VIR_JSON_TYPE_STRING: - out = virJSONValueNewString(in->data.string); + out = virJSONValueNewString(g_strdup(in->data.string)); break; case VIR_JSON_TYPE_NUMBER: out = virJSONValueNewNumber(g_strdup(in->data.number)); diff --git a/src/util/virjson.h b/src/util/virjson.h index 361b0190e8..71b88183fe 100644 --- a/src/util/virjson.h +++ b/src/util/virjson.h @@ -50,7 +50,7 @@ int virJSONValueObjectAddVArgs(virJSONValue **objptr, va_list args) ATTRIBUTE_NONNULL(1); -virJSONValue *virJSONValueNewString(const char *data); +virJSONValue *virJSONValueNewString(char *data); virJSONValue *virJSONValueNewStringLen(const char *data, size_t length); virJSONValue *virJSONValueNewNumberInt(int data); virJSONValue *virJSONValueNewNumberUint(unsigned int data); diff --git a/tests/virjsontest.c b/tests/virjsontest.c index ddb93803b7..78283b632a 100644 --- a/tests/virjsontest.c +++ b/tests/virjsontest.c @@ -441,8 +441,8 @@ testJSONObjectFormatSteal(const void *opaque G_GNUC_UNUSED) g_autoptr(virJSONValue) t1 = NULL; g_autoptr(virJSONValue) t2 = NULL; - if (!(a1 = virJSONValueNewString("test")) || - !(a2 = virJSONValueNewString("test"))) { + if (!(a1 = virJSONValueNewString(g_strdup("test"))) || + !(a2 = virJSONValueNewString(g_strdup("test")))) { VIR_TEST_VERBOSE("Failed to create json object"); } -- 2.31.1

Replace the function by a call to virJSONValueNewString, when we copy the string using g_strndup. Remove the unused helper. Signed-off-by: Peter Krempa <pkrempa@redhat.com> --- src/libvirt_private.syms | 1 - src/util/virjson.c | 21 +-------------------- src/util/virjson.h | 1 - 3 files changed, 1 insertion(+), 22 deletions(-) diff --git a/src/libvirt_private.syms b/src/libvirt_private.syms index b2c16c469d..bf5d0f54f3 100644 --- a/src/libvirt_private.syms +++ b/src/libvirt_private.syms @@ -2536,7 +2536,6 @@ virJSONValueNewNumberUint; virJSONValueNewNumberUlong; virJSONValueNewObject; virJSONValueNewString; -virJSONValueNewStringLen; virJSONValueObjectAdd; virJSONValueObjectAddVArgs; virJSONValueObjectAppend; diff --git a/src/util/virjson.c b/src/util/virjson.c index 37301bb87e..719f4de1bf 100644 --- a/src/util/virjson.c +++ b/src/util/virjson.c @@ -428,24 +428,6 @@ virJSONValueNewString(char *data) } -virJSONValue * -virJSONValueNewStringLen(const char *data, - size_t length) -{ - virJSONValue *val; - - if (!data) - return virJSONValueNewNull(); - - val = g_new0(virJSONValue, 1); - - val->type = VIR_JSON_TYPE_STRING; - val->data.string = g_strndup(data, length); - - return val; -} - - /** * virJSONValueNewNumber: * @data: string representing the number @@ -1558,8 +1540,7 @@ virJSONParserHandleString(void *ctx, size_t stringLen) { virJSONParser *parser = ctx; - g_autoptr(virJSONValue) value = virJSONValueNewStringLen((const char *)stringVal, - stringLen); + g_autoptr(virJSONValue) value = virJSONValueNewString(g_strndup((const char *)stringVal, stringLen)); VIR_DEBUG("parser=%p str=%p", parser, (const char *)stringVal); diff --git a/src/util/virjson.h b/src/util/virjson.h index 71b88183fe..cb2315d13e 100644 --- a/src/util/virjson.h +++ b/src/util/virjson.h @@ -51,7 +51,6 @@ int virJSONValueObjectAddVArgs(virJSONValue **objptr, va_list args) virJSONValue *virJSONValueNewString(char *data); -virJSONValue *virJSONValueNewStringLen(const char *data, size_t length); virJSONValue *virJSONValueNewNumberInt(int data); virJSONValue *virJSONValueNewNumberUint(unsigned int data); virJSONValue *virJSONValueNewNumberLong(long long data); -- 2.31.1

If needed 'virJSONValueIsNull' can be easily replaced by 'virJSONValueGetType(obj) == VIR_JSON_TYPE_NULL'. 'virJSONValueObjectIsNull' has confusing name because it checks that a virJSONValue of OBJECT type has a key which is NULL, not that the object itself is NULL. This can be replaced according to the needs e.g. by virJSONValueObjectHasKey or the above check. Both are unused. Signed-off-by: Peter Krempa <pkrempa@redhat.com> --- src/libvirt_private.syms | 2 -- src/util/virjson.c | 19 ------------------- src/util/virjson.h | 2 -- 3 files changed, 23 deletions(-) diff --git a/src/libvirt_private.syms b/src/libvirt_private.syms index bf5d0f54f3..435ee8054c 100644 --- a/src/libvirt_private.syms +++ b/src/libvirt_private.syms @@ -2524,7 +2524,6 @@ virJSONValueGetString; virJSONValueGetType; virJSONValueHashFree; virJSONValueIsArray; -virJSONValueIsNull; virJSONValueIsObject; virJSONValueNewArray; virJSONValueNewBoolean; @@ -2565,7 +2564,6 @@ virJSONValueObjectGetString; virJSONValueObjectGetStringArray; virJSONValueObjectGetValue; virJSONValueObjectHasKey; -virJSONValueObjectIsNull; virJSONValueObjectKeysNumber; virJSONValueObjectPrependString; virJSONValueObjectRemoveKey; diff --git a/src/util/virjson.c b/src/util/virjson.c index 719f4de1bf..1c6fef22da 100644 --- a/src/util/virjson.c +++ b/src/util/virjson.c @@ -1136,13 +1136,6 @@ virJSONValueGetBoolean(virJSONValue *val, } -bool -virJSONValueIsNull(virJSONValue *val) -{ - return val->type == VIR_JSON_TYPE_NULL; -} - - const char * virJSONValueObjectGetString(virJSONValue *object, const char *key) @@ -1296,18 +1289,6 @@ virJSONValueObjectStealObject(virJSONValue *object, } -int -virJSONValueObjectIsNull(virJSONValue *object, - const char *key) -{ - virJSONValue *val = virJSONValueObjectGet(object, key); - - if (!val) - return -1; - - return virJSONValueIsNull(val); -} - char ** virJSONValueObjectGetStringArray(virJSONValue *object, const char *key) { diff --git a/src/util/virjson.h b/src/util/virjson.h index cb2315d13e..24ac51f4f8 100644 --- a/src/util/virjson.h +++ b/src/util/virjson.h @@ -99,7 +99,6 @@ int virJSONValueGetNumberLong(virJSONValue *object, long long *value); int virJSONValueGetNumberUlong(virJSONValue *object, unsigned long long *value); int virJSONValueGetNumberDouble(virJSONValue *object, double *value); int virJSONValueGetBoolean(virJSONValue *object, bool *value); -bool virJSONValueIsNull(virJSONValue *object); virJSONValue *virJSONValueObjectGetObject(virJSONValue *object, const char *key); virJSONValue *virJSONValueObjectGetArray(virJSONValue *object, @@ -118,7 +117,6 @@ int virJSONValueObjectGetNumberLong(virJSONValue *object, const char *key, long int virJSONValueObjectGetNumberUlong(virJSONValue *object, const char *key, unsigned long long *value); int virJSONValueObjectGetNumberDouble(virJSONValue *object, const char *key, double *value); int virJSONValueObjectGetBoolean(virJSONValue *object, const char *key, bool *value); -int virJSONValueObjectIsNull(virJSONValue *object, const char *key); int virJSONValueObjectAppendString(virJSONValue *object, const char *key, const char *value); int virJSONValueObjectAppendStringPrintf(virJSONValue *object, const char *key, const char *fmt, ...) -- 2.31.1

Signed-off-by: Peter Krempa <pkrempa@redhat.com> --- src/util/virjson.h | 312 +++++++++++++++++++++++++++++++-------------- 1 file changed, 218 insertions(+), 94 deletions(-) diff --git a/src/util/virjson.h b/src/util/virjson.h index 24ac51f4f8..f0b8c419de 100644 --- a/src/util/virjson.h +++ b/src/util/virjson.h @@ -39,123 +39,247 @@ typedef enum { typedef struct _virJSONValue virJSONValue; -void virJSONValueFree(virJSONValue *value); -void virJSONValueHashFree(void *opaque); +void +virJSONValueFree(virJSONValue *value); +void +virJSONValueHashFree(void *opaque); -virJSONType virJSONValueGetType(const virJSONValue *value); +virJSONType +virJSONValueGetType(const virJSONValue *value); -int virJSONValueObjectAdd(virJSONValue **obj, ...) +int +virJSONValueObjectAdd(virJSONValue **obj, ...) ATTRIBUTE_NONNULL(1) G_GNUC_NULL_TERMINATED; -int virJSONValueObjectAddVArgs(virJSONValue **objptr, va_list args) +int +virJSONValueObjectAddVArgs(virJSONValue **objptr, + va_list args) ATTRIBUTE_NONNULL(1); -virJSONValue *virJSONValueNewString(char *data); -virJSONValue *virJSONValueNewNumberInt(int data); -virJSONValue *virJSONValueNewNumberUint(unsigned int data); -virJSONValue *virJSONValueNewNumberLong(long long data); -virJSONValue *virJSONValueNewNumberUlong(unsigned long long data); -virJSONValue *virJSONValueNewNumberDouble(double data); -virJSONValue *virJSONValueNewBoolean(int boolean); -virJSONValue *virJSONValueNewNull(void); -virJSONValue *virJSONValueNewArray(void); -virJSONValue *virJSONValueNewObject(void); +virJSONValue * +virJSONValueNewString(char *data); +virJSONValue * +virJSONValueNewNumberInt(int data); +virJSONValue * +virJSONValueNewNumberUint(unsigned int data); +virJSONValue * +virJSONValueNewNumberLong(long long data); +virJSONValue * +virJSONValueNewNumberUlong(unsigned long long data); +virJSONValue * +virJSONValueNewNumberDouble(double data); +virJSONValue * +virJSONValueNewBoolean(int boolean); +virJSONValue * +virJSONValueNewNull(void); +virJSONValue * +virJSONValueNewArray(void); +virJSONValue * +virJSONValueNewObject(void); + +int +virJSONValueObjectAppend(virJSONValue *object, + const char *key, + virJSONValue **value); +int +virJSONValueArrayAppend(virJSONValue *object, + virJSONValue **value); +int +virJSONValueArrayConcat(virJSONValue *a, + virJSONValue *c); + +int +virJSONValueObjectHasKey(virJSONValue *object, + const char *key); +virJSONValue * +virJSONValueObjectGet(virJSONValue *object, + const char *key); +virJSONValue * +virJSONValueObjectGetByType(virJSONValue *object, + const char *key, + virJSONType type); + +bool +virJSONValueIsObject(virJSONValue *object); + +bool +virJSONValueIsArray(virJSONValue *array); +size_t +virJSONValueArraySize(const virJSONValue *array); +virJSONValue * +virJSONValueArrayGet(virJSONValue *object, + unsigned int element); +virJSONValue * +virJSONValueArraySteal(virJSONValue *object, + unsigned int element); -int virJSONValueObjectAppend(virJSONValue *object, - const char *key, - virJSONValue **value); -int virJSONValueArrayAppend(virJSONValue *object, - virJSONValue **value); -int virJSONValueArrayConcat(virJSONValue *a, - virJSONValue *c); - -int virJSONValueObjectHasKey(virJSONValue *object, const char *key); -virJSONValue *virJSONValueObjectGet(virJSONValue *object, const char *key); -virJSONValue *virJSONValueObjectGetByType(virJSONValue *object, - const char *key, virJSONType type); - -bool virJSONValueIsObject(virJSONValue *object); - -bool virJSONValueIsArray(virJSONValue *array); -size_t virJSONValueArraySize(const virJSONValue *array); -virJSONValue *virJSONValueArrayGet(virJSONValue *object, unsigned int element); -virJSONValue *virJSONValueArraySteal(virJSONValue *object, unsigned int element); typedef int (*virJSONArrayIteratorFunc)(size_t pos, virJSONValue *item, void *opaque); -int virJSONValueArrayForeachSteal(virJSONValue *array, - virJSONArrayIteratorFunc cb, - void *opaque); -int virJSONValueObjectKeysNumber(virJSONValue *object); -const char *virJSONValueObjectGetKey(virJSONValue *object, unsigned int n); -virJSONValue *virJSONValueObjectGetValue(virJSONValue *object, unsigned int n); - -const char *virJSONValueGetString(virJSONValue *object); -const char *virJSONValueGetNumberString(virJSONValue *number); -int virJSONValueGetNumberInt(virJSONValue *object, int *value); -int virJSONValueGetNumberUint(virJSONValue *object, unsigned int *value); -int virJSONValueGetNumberLong(virJSONValue *object, long long *value); -int virJSONValueGetNumberUlong(virJSONValue *object, unsigned long long *value); -int virJSONValueGetNumberDouble(virJSONValue *object, double *value); -int virJSONValueGetBoolean(virJSONValue *object, bool *value); -virJSONValue *virJSONValueObjectGetObject(virJSONValue *object, - const char *key); -virJSONValue *virJSONValueObjectGetArray(virJSONValue *object, - const char *key); -virJSONValue *virJSONValueObjectStealArray(virJSONValue *object, - const char *key); -virJSONValue *virJSONValueObjectStealObject(virJSONValue *object, - const char *key); - -const char *virJSONValueObjectGetString(virJSONValue *object, const char *key); -char **virJSONValueObjectGetStringArray(virJSONValue *object, const char *key); -const char *virJSONValueObjectGetStringOrNumber(virJSONValue *object, const char *key); -int virJSONValueObjectGetNumberInt(virJSONValue *object, const char *key, int *value); -int virJSONValueObjectGetNumberUint(virJSONValue *object, const char *key, unsigned int *value); -int virJSONValueObjectGetNumberLong(virJSONValue *object, const char *key, long long *value); -int virJSONValueObjectGetNumberUlong(virJSONValue *object, const char *key, unsigned long long *value); -int virJSONValueObjectGetNumberDouble(virJSONValue *object, const char *key, double *value); -int virJSONValueObjectGetBoolean(virJSONValue *object, const char *key, bool *value); - -int virJSONValueObjectAppendString(virJSONValue *object, const char *key, const char *value); -int virJSONValueObjectAppendStringPrintf(virJSONValue *object, const char *key, const char *fmt, ...) +int +virJSONValueArrayForeachSteal(virJSONValue *array, + virJSONArrayIteratorFunc cb, + void *opaque); + +int +virJSONValueObjectKeysNumber(virJSONValue *object); +const char * +virJSONValueObjectGetKey(virJSONValue *object, + unsigned int n); +virJSONValue * +virJSONValueObjectGetValue(virJSONValue *object, + unsigned int n); + +const char * +virJSONValueGetString(virJSONValue *object); +const char * +virJSONValueGetNumberString(virJSONValue *number); +int +virJSONValueGetNumberInt(virJSONValue *object, + int *value); +int +virJSONValueGetNumberUint(virJSONValue *object, + unsigned int *value); +int +virJSONValueGetNumberLong(virJSONValue *object, + long long *value); +int +virJSONValueGetNumberUlong(virJSONValue *object, + unsigned long long *value); +int +virJSONValueGetNumberDouble(virJSONValue *object, + double *value); +int +virJSONValueGetBoolean(virJSONValue *object, + bool *value); + +virJSONValue * +virJSONValueObjectGetObject(virJSONValue *object, + const char *key); +virJSONValue * +virJSONValueObjectGetArray(virJSONValue *object, + const char *key); +virJSONValue * +virJSONValueObjectStealArray(virJSONValue *object, + const char *key); +virJSONValue * +virJSONValueObjectStealObject(virJSONValue *object, + const char *key); +const char * +virJSONValueObjectGetString(virJSONValue *object, + const char *key); +char ** +virJSONValueObjectGetStringArray(virJSONValue *object, + const char *key); +const char * +virJSONValueObjectGetStringOrNumber(virJSONValue *object, + const char *key); +int +virJSONValueObjectGetNumberInt(virJSONValue *object, + const char *key, + int *value); +int +virJSONValueObjectGetNumberUint(virJSONValue *object, + const char *key, + unsigned int *value); +int +virJSONValueObjectGetNumberLong(virJSONValue *object, + const char *key, + long long *value); +int +virJSONValueObjectGetNumberUlong(virJSONValue *object, + const char *key, + unsigned long long *value); +int +virJSONValueObjectGetNumberDouble(virJSONValue *object, + const char *key, + double *value); +int +virJSONValueObjectGetBoolean(virJSONValue *object, + const char *key, + bool *value); + +int +virJSONValueObjectAppendString(virJSONValue *object, + const char *key, + const char *value); +int +virJSONValueObjectAppendStringPrintf(virJSONValue *object, + const char *key, + const char *fmt, + ...) G_GNUC_PRINTF(3, 4); -int virJSONValueObjectPrependString(virJSONValue *object, const char *key, const char *value); -int virJSONValueObjectAppendNumberInt(virJSONValue *object, const char *key, int number); -int virJSONValueObjectAppendNumberUint(virJSONValue *object, const char *key, unsigned int number); -int virJSONValueObjectAppendNumberLong(virJSONValue *object, const char *key, long long number); -int virJSONValueObjectAppendNumberUlong(virJSONValue *object, const char *key, unsigned long long number); -int virJSONValueObjectAppendNumberDouble(virJSONValue *object, const char *key, double number); -int virJSONValueObjectAppendBoolean(virJSONValue *object, const char *key, int boolean); -int virJSONValueObjectAppendNull(virJSONValue *object, const char *key); - -int virJSONValueObjectRemoveKey(virJSONValue *object, const char *key, - virJSONValue **value) +int +virJSONValueObjectPrependString(virJSONValue *object, + const char *key, + const char *value); +int +virJSONValueObjectAppendNumberInt(virJSONValue *object, + const char *key, + int number); +int +virJSONValueObjectAppendNumberUint(virJSONValue *object, + const char *key, + unsigned int number); +int +virJSONValueObjectAppendNumberLong(virJSONValue *object, + const char *key, + long long number); +int +virJSONValueObjectAppendNumberUlong(virJSONValue *object, + const char *key, + unsigned long long number); +int +virJSONValueObjectAppendNumberDouble(virJSONValue *object, + const char *key, + double number); +int +virJSONValueObjectAppendBoolean(virJSONValue *object, + const char *key, + int boolean); +int +virJSONValueObjectAppendNull(virJSONValue *object, + const char *key); + +int +virJSONValueObjectRemoveKey(virJSONValue *object, + const char *key, + virJSONValue **value) ATTRIBUTE_NONNULL(1) ATTRIBUTE_NONNULL(2); -int virJSONValueArrayAppendString(virJSONValue *object, const char *value); +int +virJSONValueArrayAppendString(virJSONValue *object, + const char *value); -virJSONValue *virJSONValueFromString(const char *jsonstring); -char *virJSONValueToString(virJSONValue *object, - bool pretty); -int virJSONValueToBuffer(virJSONValue *object, - virBuffer *buf, - bool pretty) +virJSONValue * +virJSONValueFromString(const char *jsonstring); +char * +virJSONValueToString(virJSONValue *object, + bool pretty); +int +virJSONValueToBuffer(virJSONValue *object, + virBuffer *buf, + bool pretty) ATTRIBUTE_NONNULL(1) ATTRIBUTE_NONNULL(2) G_GNUC_WARN_UNUSED_RESULT; typedef int (*virJSONValueObjectIteratorFunc)(const char *key, virJSONValue *value, void *opaque); -int virJSONValueObjectForeachKeyValue(virJSONValue *object, - virJSONValueObjectIteratorFunc cb, - void *opaque); +int +virJSONValueObjectForeachKeyValue(virJSONValue *object, + virJSONValueObjectIteratorFunc cb, + void *opaque); -virJSONValue *virJSONValueCopy(const virJSONValue *in); +virJSONValue * +virJSONValueCopy(const virJSONValue *in); -char *virJSONStringReformat(const char *jsonstr, bool pretty); +char * +virJSONStringReformat(const char *jsonstr, + bool pretty); -virJSONValue *virJSONValueObjectDeflatten(virJSONValue *json); +virJSONValue * +virJSONValueObjectDeflatten(virJSONValue *json); G_DEFINE_AUTOPTR_CLEANUP_FUNC(virJSONValue, virJSONValueFree); -- 2.31.1

On a Wednesday in 2021, Peter Krempa wrote:
Peter Krempa (6): qemuBlockStorageSourceGetRBDProps: Simplify generation of auth modes Replace open coded virJSONValueArrayAppendString util: json: Don't copy string in virJSONValueNewString util: json: Open-code only call of virJSONValueNewStringLen util: json: Remove virJSONValueIsNull/virJSONValueObjectIsNull util: virjson.h: Reformat headers to conform with new style
src/libvirt_private.syms | 3 - src/qemu/qemu_agent.c | 4 +- src/qemu/qemu_block.c | 10 +- src/util/virjson.c | 57 +------ src/util/virjson.h | 315 +++++++++++++++++++++++++++------------ src/util/virmacmap.c | 4 +- tests/virjsontest.c | 4 +- 7 files changed, 231 insertions(+), 166 deletions(-)
Reviewed-by: Ján Tomko <jtomko@redhat.com> Jano

On Wed, 2021-12-22 at 13:02 +0100, Peter Krempa wrote:
Peter Krempa (6): qemuBlockStorageSourceGetRBDProps: Simplify generation of auth modes Replace open coded virJSONValueArrayAppendString util: json: Don't copy string in virJSONValueNewString util: json: Open-code only call of virJSONValueNewStringLen util: json: Remove virJSONValueIsNull/virJSONValueObjectIsNull util: virjson.h: Reformat headers to conform with new style
src/libvirt_private.syms | 3 - src/qemu/qemu_agent.c | 4 +- src/qemu/qemu_block.c | 10 +- src/util/virjson.c | 57 +------ src/util/virjson.h | 315 +++++++++++++++++++++++++++---------- -- src/util/virmacmap.c | 4 +- tests/virjsontest.c | 4 +- 7 files changed, 231 insertions(+), 166 deletions(-)
Reviewed-by: Tim Wiederhake <twiederh@redhat.com>
participants (3)
-
Ján Tomko
-
Peter Krempa
-
Tim Wiederhake