qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] [PATCH 08/22] qapi: qapi_visit.py, support for visiting


From: Anthony Liguori
Subject: Re: [Qemu-devel] [PATCH 08/22] qapi: qapi_visit.py, support for visiting non-pointer/embedded structs
Date: Tue, 24 Jul 2012 17:21:40 -0500
User-agent: Notmuch/0.13.2+60~g7ecf77d (http://notmuchmail.org) Emacs/23.3.1 (x86_64-pc-linux-gnu)

Michael Roth <address@hidden> writes:

Reviewed-by: Anthony Liguori <address@hidden>

Regards,

Anthony Liguori

> Signed-off-by: Michael Roth <address@hidden>
> ---
>  scripts/qapi_visit.py |    9 +++++++++
>  1 file changed, 9 insertions(+)
>
> diff --git a/scripts/qapi_visit.py b/scripts/qapi_visit.py
> index 864acb2..8f8cdca 100644
> --- a/scripts/qapi_visit.py
> +++ b/scripts/qapi_visit.py
> @@ -105,6 +105,15 @@ if (obj && (*obj)->%(prefix)shas_%(c_name)s) {
>              if annotated:
>                  if isinstance(argentry['type'], types.ListType):
>                      ret += generate_visit_array_body(argname, argentry)
> +                elif argentry.has_key('<embedded struct>'):
> +                    tmp_ptr_name = "%s_%s_ptr" % 
> (c_var(field_prefix).replace(".", ""), c_var(argname))
> +                    ret += mcgen('''
> +%(type)s *%(tmp_ptr)s = &(*obj)->%(c_prefix)s%(c_name)s;
> +visit_type_%(type)s(m, (obj && *obj) ? &%(tmp_ptr)s : NULL, "%(name)s", 
> errp);
> +''',
> +                                 c_prefix=c_var(field_prefix), 
> prefix=field_prefix,
> +                                 type=type_name(argentry['type']), 
> c_name=c_var(argname),
> +                                 name=argname, tmp_ptr=tmp_ptr_name)
>              else:
>                  ret += mcgen('''
>  visit_type_%(type)s(m, obj ? &(*obj)->%(c_prefix)s%(c_name)s : NULL, 
> "%(name)s", errp);
> -- 
> 1.7.9.5




reply via email to

[Prev in Thread] Current Thread [Next in Thread]