• E
    qapi-visit: Kill unused visit_end_union() · 7c91aabd
    Eric Blake 提交于
    The generated code can call visit_end_union() without having called
    visit_start_union().  Example:
    
            if (!*obj) {
                goto out_obj;
            }
            visit_type_CpuInfoBase_fields(v, (CpuInfoBase **)obj, &err);
            if (err) {
                goto out_obj; // if we go from here...
            }
            if (!visit_start_union(v, !!(*obj)->u.data, &err) || err) {
                goto out_obj;
            }
            switch ((*obj)->arch) {
        [...]
            }
        out_obj:
            // ... then *obj is true, and ...
            error_propagate(errp, err);
            err = NULL;
            if (*obj) {
                // we end up here
                visit_end_union(v, !!(*obj)->u.data, &err);
            }
            error_propagate(errp, err);
    
    Harmless only because no visitor implements end_union().  Clean it up
    anyway, by deleting the function as useless.
    
    Messed up since we have visit_end_union (commit cee2dedb).
    Signed-off-by: NMarkus Armbruster <armbru@redhat.com>
    Message-Id: <1453902888-20457-3-git-send-email-armbru@redhat.com>
    [expand scope of patch to delete rather than repair]
    Signed-off-by: NEric Blake <eblake@redhat.com>
    Message-Id: <1454075341-13658-13-git-send-email-eblake@redhat.com>
    7c91aabd
qapi-visit.py 12.3 KB