mirror of https://gitee.com/openkylin/qemu.git
qapi-types/visit.py: Pass whole expr dict for structs
Signed-off-by: Kevin Wolf <kwolf@redhat.com> Reviewed-by: Eric Blake <eblake@redhat.com>
This commit is contained in:
parent
52c8d629ca
commit
14d36307ff
|
@ -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 @@ def maybe_open(really, name, opt):
|
|||
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'])
|
||||
|
|
|
@ -120,7 +120,11 @@ def generate_visit_struct_body(field_prefix, name, members):
|
|||
''')
|
||||
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 @@ def maybe_open(really, name, opt):
|
|||
|
||||
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)
|
||||
|
||||
|
|
Loading…
Reference in New Issue