Commit 58561c27 authored by Markus Armbruster's avatar Markus Armbruster
Browse files

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: default avatarMarkus Armbruster <armbru@redhat.com>
Reviewed-by: default avatarEric Blake <eblake@redhat.com>
Message-Id: <1488544368-30622-14-git-send-email-armbru@redhat.com>
Reviewed-by: default avatarPhilippe Mathieu-Daudé <f4bug@amsat.org>
parent b8874fbf
Loading
Loading
Loading
Loading
+5 −9
Original line number Diff line number Diff line
@@ -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) {
    if (entry && list) {
        *list = g_malloc0(size);
        } else {
            *list = NULL;
        }
    }
}