Commit 14d36307 authored by Kevin Wolf's avatar Kevin Wolf
Browse files

qapi-types/visit.py: Pass whole expr dict for structs



Signed-off-by: default avatarKevin Wolf <kwolf@redhat.com>
Reviewed-by: default avatarEric Blake <eblake@redhat.com>
parent 52c8d629
Loading
Loading
Loading
Loading
+8 −3
Original line number Diff line number Diff line
@@ -71,7 +71,7 @@ def generate_struct_fields(members):
                         c_name=c_var(argname))
        if structured:
            push_indent()
            ret += generate_struct("", argname, argentry)
            ret += generate_struct({ "field": argname, "data": argentry})
            pop_indent()
        else:
            ret += mcgen('''
@@ -81,7 +81,12 @@ def generate_struct_fields(members):

    return ret

def generate_struct(structname, fieldname, members):
def generate_struct(expr):

    structname = expr.get('type', "")
    fieldname = expr.get('field', "")
    members = expr['data']

    ret = mcgen('''
struct %(name)s
{
@@ -417,7 +422,7 @@ if do_builtins:
for expr in exprs:
    ret = "\n"
    if expr.has_key('type'):
        ret += generate_struct(expr['type'], "", expr['data']) + "\n"
        ret += generate_struct(expr) + "\n"
        ret += generate_type_cleanup_decl(expr['type'] + "List")
        fdef.write(generate_type_cleanup(expr['type'] + "List") + "\n")
        ret += generate_type_cleanup_decl(expr['type'])
+6 −2
Original line number Diff line number Diff line
@@ -120,7 +120,11 @@ if (!err) {
''')
    return ret

def generate_visit_struct(name, members):
def generate_visit_struct(expr):

    name = expr['type']
    members = expr['data']

    ret = generate_visit_struct_fields(name, "", "", members)

    ret += mcgen('''
@@ -472,7 +476,7 @@ if do_builtins:

for expr in exprs:
    if expr.has_key('type'):
        ret = generate_visit_struct(expr['type'], expr['data'])
        ret = generate_visit_struct(expr)
        ret += generate_visit_list(expr['type'], expr['data'])
        fdef.write(ret)