diff options
author | Eric Blake <eblake@redhat.com> | 2015-12-01 22:20:53 -0700 |
---|---|---|
committer | Markus Armbruster <armbru@redhat.com> | 2015-12-17 08:21:29 +0100 |
commit | 29637a6ee913df8fcdf371426ee48956b945b618 (patch) | |
tree | 8d2c3369074919498d62828d2a624a355ba1a2c3 /qapi | |
parent | 5cdc8831a795fb8452d7e34f644202fd724e122a (diff) | |
download | qemu-29637a6ee913df8fcdf371426ee48956b945b618.tar.gz qemu-29637a6ee913df8fcdf371426ee48956b945b618.tar.bz2 qemu-29637a6ee913df8fcdf371426ee48956b945b618.zip |
qapi: Shorter visits of optional fields
For less code, reflect the determined boolean value of an optional
visit back to the caller instead of making the caller read the
boolean after the fact.
The resulting generated code has the following diff:
|- visit_optional(v, &has_fdset_id, "fdset-id");
|- if (has_fdset_id) {
|+ if (visit_optional(v, &has_fdset_id, "fdset-id")) {
| visit_type_int(v, &fdset_id, "fdset-id", &err);
| if (err) {
| goto out;
| }
| }
Signed-off-by: Eric Blake <eblake@redhat.com>
Message-Id: <1449033659-25497-10-git-send-email-eblake@redhat.com>
Signed-off-by: Markus Armbruster <armbru@redhat.com>
Diffstat (limited to 'qapi')
-rw-r--r-- | qapi/qapi-visit-core.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/qapi/qapi-visit-core.c b/qapi/qapi-visit-core.c index e07d6f962f..6d63e40234 100644 --- a/qapi/qapi-visit-core.c +++ b/qapi/qapi-visit-core.c @@ -73,11 +73,12 @@ void visit_end_union(Visitor *v, bool data_present, Error **errp) } } -void visit_optional(Visitor *v, bool *present, const char *name) +bool visit_optional(Visitor *v, bool *present, const char *name) { if (v->optional) { v->optional(v, present, name); } + return *present; } void visit_get_next_type(Visitor *v, QType *type, bool promote_int, |