qemu-devel
[Top][All Lists]
Advanced

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

[Qemu-devel] [PATCH 07/26] qapi: qapi_visit.py, support for visiting non


From: Michael Roth
Subject: [Qemu-devel] [PATCH 07/26] qapi: qapi_visit.py, support for visiting non-pointer/embedded structs
Date: Thu, 18 Oct 2012 21:42:01 -0500

Reviewed-by: Anthony Liguori <address@hidden>
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 856df5e..c531a5a 100644
--- a/scripts/qapi_visit.py
+++ b/scripts/qapi_visit.py
@@ -145,6 +145,15 @@ if (obj && (*obj)->%(prefix)shas_%(c_name)s) {
             if annotated:
                 if isinstance(argentry['type'], types.ListType):
                     ret += generate_visit_carray_body(argname, argentry)
+                elif argentry.has_key('embedded') and argentry['embedded'] == 
'true':
+                    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]