yeahuh / rpms / qemu-kvm

Forked from rpms/qemu-kvm 2 years ago
Clone

Blame SOURCES/kvm-qapi-visit.py-Split-off-generate_visit_struct_fields.patch

9ae3a8
From 0c8fb6c71c02e202235933781430efac5c0d7314 Mon Sep 17 00:00:00 2001
9ae3a8
From: Kevin Wolf <kwolf@redhat.com>
9ae3a8
Date: Mon, 9 Sep 2013 14:28:08 +0200
9ae3a8
Subject: [PATCH 17/38] qapi-visit.py: Split off generate_visit_struct_fields()
9ae3a8
9ae3a8
RH-Author: Kevin Wolf <kwolf@redhat.com>
9ae3a8
Message-id: <1378736903-18489-18-git-send-email-kwolf@redhat.com>
9ae3a8
Patchwork-id: 54204
9ae3a8
O-Subject: [RHEL-7.0 qemu-kvm PATCH 17/32] qapi-visit.py: Split off generate_visit_struct_fields()
9ae3a8
Bugzilla: 1005818
9ae3a8
RH-Acked-by: Fam Zheng <famz@redhat.com>
9ae3a8
RH-Acked-by: Max Reitz <mreitz@redhat.com>
9ae3a8
RH-Acked-by: Miroslav Rezanina <mrezanin@redhat.com>
9ae3a8
9ae3a8
Bugzilla: 1005818
9ae3a8
9ae3a8
Signed-off-by: Kevin Wolf <kwolf@redhat.com>
9ae3a8
Reviewed-by: Eric Blake <eblake@redhat.com>
9ae3a8
(cherry picked from commit d131c897f3dea8b76d7a487af0f7f5f11d0500a3)
9ae3a8
9ae3a8
Signed-off-by: Kevin Wolf <kwolf@redhat.com>
9ae3a8
---
9ae3a8
 scripts/qapi-visit.py | 62 ++++++++++++++++++++++++++++-----------------------
9ae3a8
 1 file changed, 34 insertions(+), 28 deletions(-)
9ae3a8
9ae3a8
Signed-off-by: Miroslav Rezanina <mrezanin@redhat.com>
9ae3a8
---
9ae3a8
 scripts/qapi-visit.py |   62 ++++++++++++++++++++++++++----------------------
9ae3a8
 1 files changed, 34 insertions(+), 28 deletions(-)
9ae3a8
9ae3a8
diff --git a/scripts/qapi-visit.py b/scripts/qapi-visit.py
9ae3a8
index a276540..5adc2af 100644
9ae3a8
--- a/scripts/qapi-visit.py
9ae3a8
+++ b/scripts/qapi-visit.py
9ae3a8
@@ -17,34 +17,9 @@ import os
9ae3a8
 import getopt
9ae3a8
 import errno
9ae3a8
 
9ae3a8
-def generate_visit_struct_body(field_prefix, name, members):
9ae3a8
-    ret = mcgen('''
9ae3a8
-if (!error_is_set(errp)) {
9ae3a8
-''')
9ae3a8
-    push_indent()
9ae3a8
-
9ae3a8
-    if len(field_prefix):
9ae3a8
-        field_prefix = field_prefix + "."
9ae3a8
-        ret += mcgen('''
9ae3a8
-Error **errp = &err; /* from outer scope */
9ae3a8
-Error *err = NULL;
9ae3a8
-visit_start_struct(m, NULL, "", "%(name)s", 0, &err;;
9ae3a8
-''',
9ae3a8
-                name=name)
9ae3a8
-    else:
9ae3a8
-        ret += mcgen('''
9ae3a8
-Error *err = NULL;
9ae3a8
-visit_start_struct(m, (void **)obj, "%(name)s", name, sizeof(%(name)s), &err;;
9ae3a8
-''',
9ae3a8
-                name=name)
9ae3a8
+def generate_visit_struct_fields(field_prefix, members):
9ae3a8
+    ret = ''
9ae3a8
 
9ae3a8
-    ret += mcgen('''
9ae3a8
-if (!err) {
9ae3a8
-    if (!obj || *obj) {
9ae3a8
-''')
9ae3a8
-
9ae3a8
-    push_indent()
9ae3a8
-    push_indent()
9ae3a8
     for argname, argentry, optional, structured in parse_args(members):
9ae3a8
         if optional:
9ae3a8
             ret += mcgen('''
9ae3a8
@@ -72,9 +47,40 @@ visit_type_%(type)s(m, obj ? &(*obj)->%(c_prefix)s%(c_name)s : NULL, "%(name)s",
9ae3a8
 visit_end_optional(m, &err;;
9ae3a8
 ''')
9ae3a8
 
9ae3a8
-    pop_indent()
9ae3a8
+    return ret
9ae3a8
+
9ae3a8
+
9ae3a8
+def generate_visit_struct_body(field_prefix, name, members):
9ae3a8
+    ret = mcgen('''
9ae3a8
+if (!error_is_set(errp)) {
9ae3a8
+''')
9ae3a8
+    push_indent()
9ae3a8
+
9ae3a8
+    if len(field_prefix):
9ae3a8
+        field_prefix = field_prefix + "."
9ae3a8
+        ret += mcgen('''
9ae3a8
+Error **errp = &err; /* from outer scope */
9ae3a8
+Error *err = NULL;
9ae3a8
+visit_start_struct(m, NULL, "", "%(name)s", 0, &err;;
9ae3a8
+''',
9ae3a8
+                name=name)
9ae3a8
+    else:
9ae3a8
+        ret += mcgen('''
9ae3a8
+Error *err = NULL;
9ae3a8
+visit_start_struct(m, (void **)obj, "%(name)s", name, sizeof(%(name)s), &err;;
9ae3a8
+''',
9ae3a8
+                name=name)
9ae3a8
+
9ae3a8
     ret += mcgen('''
9ae3a8
+if (!err) {
9ae3a8
+    if (!obj || *obj) {
9ae3a8
+''')
9ae3a8
+    push_indent()
9ae3a8
+    push_indent()
9ae3a8
 
9ae3a8
+    ret += generate_visit_struct_fields(field_prefix, members)
9ae3a8
+    pop_indent()
9ae3a8
+    ret += mcgen('''
9ae3a8
     error_propagate(errp, err);
9ae3a8
     err = NULL;
9ae3a8
 }
9ae3a8
-- 
9ae3a8
1.7.1
9ae3a8