From: Eric Blake <eblake@redhat.com>
To: qemu-devel@nongnu.org
Cc: kwolf@redhat.com, berto@igalia.com, armbru@redhat.com
Subject: [Qemu-devel] [PATCH v7 36a/39] squash: qapi: Drop dead visitor code related to nested structs
Date: Fri, 1 May 2015 14:29:38 -0600 [thread overview]
Message-ID: <1430512178-21551-1-git-send-email-eblake@redhat.com> (raw)
In-Reply-To: <1430312814-19706-37-git-send-email-eblake@redhat.com>
Now that we no longer have nested structs to visit, the use of
prefix strings is no longer required. Remove the code that is
no longer reachable.
Signed-off-by: Eric Blake <eblake@redhat.com>
---
scripts/qapi-visit.py | 49 ++++++++++++-------------------------------------
1 file changed, 12 insertions(+), 37 deletions(-)
diff --git a/scripts/qapi-visit.py b/scripts/qapi-visit.py
index 6156162..0e67b33 100644
--- a/scripts/qapi-visit.py
+++ b/scripts/qapi-visit.py
@@ -43,50 +43,43 @@ static void visit_type_implicit_%(c_type)s(Visitor *m, %(c_type)s **obj, Error *
''',
c_type=type_name(type))
-def generate_visit_struct_fields(name, field_prefix, fn_prefix, members, base = None):
+def generate_visit_struct_fields(name, members, base = None):
substructs = []
ret = ''
- if not fn_prefix:
- full_name = name
- else:
- full_name = "%s_%s" % (name, fn_prefix)
if base:
ret += generate_visit_implicit_struct(base)
ret += mcgen('''
-static void visit_type_%(full_name)s_fields(Visitor *m, %(name)s **obj, Error **errp)
+static void visit_type_%(name)s_fields(Visitor *m, %(name)s **obj, Error **errp)
{
Error *err = NULL;
''',
- name=name, full_name=full_name)
+ name=name)
push_indent()
if base:
ret += mcgen('''
-visit_type_implicit_%(type)s(m, &(*obj)->%(c_prefix)s%(c_name)s, &err);
+visit_type_implicit_%(type)s(m, &(*obj)->%(c_name)s, &err);
if (err) {
goto out;
}
''',
- c_prefix=c_var(field_prefix),
type=type_name(base), c_name=c_var('base'))
for argname, argentry, optional in parse_args(members):
if optional:
ret += mcgen('''
-visit_optional(m, &(*obj)->%(c_prefix)shas_%(c_name)s, "%(name)s", &err);
-if (!err && (*obj)->%(prefix)shas_%(c_name)s) {
+visit_optional(m, &(*obj)->has_%(c_name)s, "%(name)s", &err);
+if (!err && (*obj)->has_%(c_name)s) {
''',
- c_prefix=c_var(field_prefix), prefix=field_prefix,
c_name=c_var(argname), name=argname)
push_indent()
ret += mcgen('''
-visit_type_%(type)s(m, &(*obj)->%(c_prefix)s%(c_name)s, "%(name)s", &err);
+visit_type_%(type)s(m, &(*obj)->%(c_name)s, "%(name)s", &err);
''',
- c_prefix=c_var(field_prefix), prefix=field_prefix,
type=type_name(argentry), c_name=c_var(argname),
name=argname)
@@ -114,29 +107,11 @@ out:
return ret
-def generate_visit_struct_body(field_prefix, name, members):
+def generate_visit_struct_body(name, members):
ret = mcgen('''
Error *err = NULL;
-''')
-
- if not field_prefix:
- full_name = name
- else:
- full_name = "%s_%s" % (field_prefix, name)
-
- if len(field_prefix):
- ret += mcgen('''
- visit_start_struct(m, NULL, "", "%(name)s", 0, &err);
-''',
- name=name)
- else:
- ret += mcgen('''
visit_start_struct(m, (void **)obj, "%(name)s", name, sizeof(%(name)s), &err);
-''',
- name=name)
-
- ret += mcgen('''
if (!err) {
if (*obj) {
visit_type_%(name)s_fields(m, obj, errp);
@@ -145,7 +120,7 @@ def generate_visit_struct_body(field_prefix, name, members):
}
error_propagate(errp, err);
''',
- name=full_name)
+ name=name)
return ret
@@ -155,7 +130,7 @@ def generate_visit_struct(expr):
members = expr['data']
base = expr.get('base')
- ret = generate_visit_struct_fields(name, "", "", members, base)
+ ret = generate_visit_struct_fields(name, members, base)
ret += mcgen('''
@@ -164,7 +139,7 @@ void visit_type_%(name)s(Visitor *m, %(name)s **obj, const char *name, Error **e
''',
name=name)
- ret += generate_visit_struct_body("", name, members)
+ ret += generate_visit_struct_body(name, members)
ret += mcgen('''
}
@@ -288,7 +263,7 @@ def generate_visit_union(expr):
assert discriminator
base_fields = find_struct(base)['data'].copy()
del base_fields[discriminator]
- ret += generate_visit_struct_fields(name, "", "", base_fields)
+ ret += generate_visit_struct_fields(name, base_fields)
if discriminator:
for key in members:
--
2.1.0
next prev parent reply other threads:[~2015-05-01 20:29 UTC|newest]
Thread overview: 49+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-04-29 13:06 [Qemu-devel] [PATCH v7 00/39] drop qapi nested structs Eric Blake
2015-04-29 13:06 ` [Qemu-devel] [PATCH v7 01/39] qapi: Add copyright declaration on docs Eric Blake
2015-04-29 13:06 ` [Qemu-devel] [PATCH v7 02/39] qapi: Document type-safety considerations Eric Blake
2015-04-29 13:06 ` [Qemu-devel] [PATCH v7 03/39] qapi: Simplify builtin type handling Eric Blake
2015-04-29 13:06 ` [Qemu-devel] [PATCH v7 04/39] qapi: Fix generation of 'size' builtin type Eric Blake
2015-04-29 13:06 ` [Qemu-devel] [PATCH v7 05/39] qapi: Require ASCII in schema Eric Blake
2015-04-29 13:06 ` [Qemu-devel] [PATCH v7 06/39] qapi: Add some enum tests Eric Blake
2015-04-29 13:06 ` [Qemu-devel] [PATCH v7 07/39] qapi: Better error messages for bad enums Eric Blake
2015-04-29 13:06 ` [Qemu-devel] [PATCH v7 08/39] qapi: Add some union tests Eric Blake
2015-04-29 13:06 ` [Qemu-devel] [PATCH v7 09/39] qapi: Clean up test coverage of simple unions Eric Blake
2015-04-29 13:06 ` [Qemu-devel] [PATCH v7 10/39] qapi: Forbid base without discriminator in unions Eric Blake
2015-04-29 13:06 ` [Qemu-devel] [PATCH v7 11/39] qapi: Tighten checking of unions Eric Blake
2015-04-29 13:06 ` [Qemu-devel] [PATCH v7 12/39] qapi: Prepare for catching more semantic parse errors Eric Blake
2015-04-29 13:06 ` [Qemu-devel] [PATCH v7 13/39] qapi: Segregate anonymous unions into alternates in generator Eric Blake
2015-04-29 13:06 ` [Qemu-devel] [PATCH v7 14/39] qapi: Rename anonymous union type in test Eric Blake
2015-04-29 13:06 ` [Qemu-devel] [PATCH v7 15/39] qapi: Document new 'alternate' meta-type Eric Blake
2015-04-29 13:06 ` [Qemu-devel] [PATCH v7 16/39] qapi: Use 'alternate' to replace anonymous union Eric Blake
2015-04-29 13:06 ` [Qemu-devel] [PATCH v7 17/39] qapi: Add some expr tests Eric Blake
2015-04-29 13:06 ` [Qemu-devel] [PATCH v7 18/39] qapi: Better error messages for bad expressions Eric Blake
2015-04-29 13:06 ` [Qemu-devel] [PATCH v7 19/39] qapi: Add tests of redefined expressions Eric Blake
2015-04-29 13:06 ` [Qemu-devel] [PATCH v7 20/39] qapi: Better error messages for duplicated expressions Eric Blake
2015-04-29 13:06 ` [Qemu-devel] [PATCH v7 21/39] qapi: Allow true, false and null in schema json Eric Blake
2015-04-29 13:06 ` [Qemu-devel] [PATCH v7 22/39] qapi: Unify type bypass and add tests Eric Blake
2015-05-01 19:55 ` Eric Blake
2015-05-01 20:10 ` [Qemu-devel] [PATCHv7 22a/39] squash: " Eric Blake
2015-04-29 13:06 ` [Qemu-devel] [PATCH v7 23/39] qapi: Add some type check tests Eric Blake
2015-04-29 13:06 ` [Qemu-devel] [PATCH v7 24/39] qapi: More rigourous checking of types Eric Blake
2015-04-29 13:06 ` [Qemu-devel] [PATCH v7 25/39] qapi: Require valid names Eric Blake
2015-05-02 20:51 ` Eric Blake
2015-05-04 7:26 ` Markus Armbruster
2015-04-29 13:06 ` [Qemu-devel] [PATCH v7 26/39] qapi: Whitelist commands that don't return dictionary Eric Blake
2015-04-29 13:06 ` [Qemu-devel] [PATCH v7 27/39] qapi: More rigorous checking for type safety bypass Eric Blake
2015-04-29 13:06 ` [Qemu-devel] [PATCH v7 28/39] qapi: Prefer 'struct' over 'type' in generator Eric Blake
2015-04-29 13:06 ` [Qemu-devel] [PATCH v7 29/39] qapi: Document 'struct' metatype Eric Blake
2015-04-29 13:06 ` [Qemu-devel] [PATCH v7 30/39] qapi: Use 'struct' instead of 'type' in schema Eric Blake
2015-04-29 13:06 ` [Qemu-devel] [PATCH v7 31/39] qapi: Forbid " Eric Blake
2015-04-29 13:06 ` [Qemu-devel] [PATCH v7 32/39] qapi: Merge UserDefTwo and UserDefNested in tests Eric Blake
2015-04-29 13:06 ` [Qemu-devel] [PATCH v7 33/39] qapi: Drop tests for inline nested structs Eric Blake
2015-04-29 13:06 ` [Qemu-devel] [PATCH v7 34/39] qapi: Drop inline nested struct in query-version Eric Blake
2015-04-29 13:06 ` [Qemu-devel] [PATCH v7 35/39] qapi: Drop inline nested structs in query-pci Eric Blake
2015-04-29 13:06 ` [Qemu-devel] [PATCH v7 36/39] qapi: Drop support for inline nested types Eric Blake
2015-05-01 20:20 ` Eric Blake
2015-05-04 7:28 ` Markus Armbruster
2015-05-01 20:29 ` Eric Blake [this message]
2015-04-29 13:06 ` [Qemu-devel] [PATCH v7 37/39] qapi: Tweak doc references to QMP when QGA is also meant Eric Blake
2015-04-29 13:06 ` [Qemu-devel] [PATCH v7 38/39] qapi: Support (subset of) \u escapes in strings Eric Blake
2015-04-29 13:06 ` [Qemu-devel] [PATCH v7 39/39] qapi: Check for member name conflicts with a base class Eric Blake
2015-05-01 20:22 ` Eric Blake
2015-05-01 20:27 ` [Qemu-devel] [PATCH v7 39a/39] squash: " Eric Blake
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1430512178-21551-1-git-send-email-eblake@redhat.com \
--to=eblake@redhat.com \
--cc=armbru@redhat.com \
--cc=berto@igalia.com \
--cc=kwolf@redhat.com \
--cc=qemu-devel@nongnu.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).