On Mon, Apr 15, 2019 at 06:01:58PM +0200, Peter Krempa wrote:
To allow for boolean query string, let's return the queried schema
entry
via argument rather than a return value.
Signed-off-by: Peter Krempa <pkrempa(a)redhat.com>
---
src/qemu/qemu_qapi.c | 30 +++++++++++++++++-------------
1 file changed, 17 insertions(+), 13 deletions(-)
diff --git a/src/qemu/qemu_qapi.c b/src/qemu/qemu_qapi.c
index de663d4408..7155f2d084 100644
--- a/src/qemu/qemu_qapi.c
+++ b/src/qemu/qemu_qapi.c
@@ -101,10 +101,11 @@ virQEMUQAPISchemaObjectGetType(const char *field,
}
-static virJSONValuePtr
+static int
virQEMUQAPISchemaTraverse(const char *baseName,
char **query,
- virHashTablePtr schema)
+ virHashTablePtr schema,
+ virJSONValuePtr *type)
{
virJSONValuePtr base;
virJSONValuePtr obj;
@@ -114,18 +115,20 @@ virQEMUQAPISchemaTraverse(const char *baseName,
Adding
*type = NULL;
here would make sure we consistently set the return value.
while (1) {
if (!(base = virHashLookup(schema, baseName)))
- return NULL;
+ return 0;
- if (!*query)
- return base;
+ if (!*query) {
+ *type = base;
+ return 0;
+ }
if (!(metatype = virJSONValueObjectGetString(base, "meta-type")))
- return NULL;
+ return 0;
/* flatten arrays by default */
if (STREQ(metatype, "array")) {
if (!(baseName = virJSONValueObjectGetString(base,
"element-type")))
- return NULL;
+ return 0;
continue;
} else if (STREQ(metatype, "object")) {
Reviewed-by: Ján Tomko <jtomko(a)redhat.com>
Jano