From: Markus Armbruster Date: Fri, 3 Mar 2017 12:32:33 +0000 (+0100) Subject: qapi: Make QObject input visitor set *list reliably X-Git-Tag: v2.9.0-rc2~77^2~15 X-Git-Url: https://git.proxmox.com/?a=commitdiff_plain;h=58561c27669ddf1c6d39ff8ce25837c6f2d9d92c;p=mirror_qemu.git qapi: Make QObject input visitor set *list reliably qobject_input_start_struct() sets *list, except when it fails because qobject_input_get_object() fails, i.e. the input object doesn't exist. All the other input visitor start_struct(), start_list(), start_alternate() always set *obj / *list. Change qobject_input_start_struct() to match. Signed-off-by: Markus Armbruster Reviewed-by: Eric Blake Message-Id: <1488544368-30622-14-git-send-email-armbru@redhat.com> Reviewed-by: Philippe Mathieu-Daudé --- diff --git a/qapi/qobject-input-visitor.c b/qapi/qobject-input-visitor.c index 2c2f88338f..d58696c7df 100644 --- a/qapi/qobject-input-visitor.c +++ b/qapi/qobject-input-visitor.c @@ -196,25 +196,21 @@ static void qobject_input_start_list(Visitor *v, const char *name, QObject *qobj = qobject_input_get_object(qiv, name, true, errp); const QListEntry *entry; + if (list) { + *list = NULL; + } if (!qobj) { return; } if (qobject_type(qobj) != QTYPE_QLIST) { - if (list) { - *list = NULL; - } error_setg(errp, QERR_INVALID_PARAMETER_TYPE, name ? name : "null", "list"); return; } entry = qobject_input_push(qiv, qobj, list); - if (list) { - if (entry) { - *list = g_malloc0(size); - } else { - *list = NULL; - } + if (entry && list) { + *list = g_malloc0(size); } }