qemu-devel
[Top][All Lists]
Advanced

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

[Qemu-devel] [PATCH 08/28] qapi: qapi_visit.py, support for q_string ann


From: Michael Roth
Subject: [Qemu-devel] [PATCH 08/28] qapi: qapi_visit.py, support for q_string annotations
Date: Wed, 31 Oct 2012 17:35:52 -0500

Signed-off-by: Michael Roth <address@hidden>
---
 scripts/qapi_visit.py |   13 ++++++++++++-
 1 file changed, 12 insertions(+), 1 deletion(-)

diff --git a/scripts/qapi_visit.py b/scripts/qapi_visit.py
index c531a5a..b3c6bfe 100644
--- a/scripts/qapi_visit.py
+++ b/scripts/qapi_visit.py
@@ -18,6 +18,14 @@ import getopt
 import errno
 import types
 
+def generate_visit_carray_as_string(name, info):
+    return mcgen('''
+char *%(name)s_ptr = (char *)&(*obj)->%(name)s;
+visit_type_str(m, &%(name)s_ptr, "%(name)s", errp);
+''',
+                 name=name)
+
+
 def generate_visit_carray_body(name, info):
     if info['array_size'][0].isdigit():
         array_size = info['array_size']
@@ -144,7 +152,10 @@ if (obj && (*obj)->%(prefix)shas_%(c_name)s) {
         else:
             if annotated:
                 if isinstance(argentry['type'], types.ListType):
-                    ret += generate_visit_carray_body(argname, argentry)
+                    if argentry.has_key('is_string') and argentry['is_string'] 
== 'true':
+                        ret += generate_visit_carray_as_string(argname, 
argentry)
+                    else:
+                        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('''
-- 
1.7.9.5




reply via email to

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