aboutsummaryrefslogtreecommitdiff
path: root/docs
diff options
context:
space:
mode:
authorMarkus Armbruster <armbru@redhat.com>2020-07-07 18:05:45 +0200
committerMarkus Armbruster <armbru@redhat.com>2020-07-10 15:18:08 +0200
commit012d4c96e260f99d5ca95cd033274af4fb73b825 (patch)
treecae388bc5db572e4462147479e7a98e33d162fbe /docs
parent3c4b89c3b209978f13bcb7ab4d375b81b6fdad99 (diff)
qapi: Make visitor functions taking Error ** return bool, not void
See recent commit "error: Document Error API usage rules" for rationale. Signed-off-by: Markus Armbruster <armbru@redhat.com> Reviewed-by: Eric Blake <eblake@redhat.com> Reviewed-by: Vladimir Sementsov-Ogievskiy <vsementsov@virtuozzo.com> Message-Id: <20200707160613.848843-18-armbru@redhat.com>
Diffstat (limited to 'docs')
-rw-r--r--docs/devel/qapi-code-gen.txt51
1 files changed, 22 insertions, 29 deletions
diff --git a/docs/devel/qapi-code-gen.txt b/docs/devel/qapi-code-gen.txt
index a7794ef658..9bfc57063c 100644
--- a/docs/devel/qapi-code-gen.txt
+++ b/docs/devel/qapi-code-gen.txt
@@ -1408,42 +1408,38 @@ Example:
#include "example-qapi-types.h"
- void visit_type_UserDefOne_members(Visitor *v, UserDefOne *obj, Error **errp);
- void visit_type_UserDefOne(Visitor *v, const char *name, UserDefOne **obj, Error **errp);
- void visit_type_UserDefOneList(Visitor *v, const char *name, UserDefOneList **obj, Error **errp);
+ bool visit_type_UserDefOne_members(Visitor *v, UserDefOne *obj, Error **errp);
+ bool visit_type_UserDefOne(Visitor *v, const char *name, UserDefOne **obj, Error **errp);
+ bool visit_type_UserDefOneList(Visitor *v, const char *name, UserDefOneList **obj, Error **errp);
- void visit_type_q_obj_my_command_arg_members(Visitor *v, q_obj_my_command_arg *obj, Error **errp);
+ bool visit_type_q_obj_my_command_arg_members(Visitor *v, q_obj_my_command_arg *obj, Error **errp);
#endif /* EXAMPLE_QAPI_VISIT_H */
$ cat qapi-generated/example-qapi-visit.c
[Uninteresting stuff omitted...]
- void visit_type_UserDefOne_members(Visitor *v, UserDefOne *obj, Error **errp)
+ bool visit_type_UserDefOne_members(Visitor *v, UserDefOne *obj, Error **errp)
{
Error *err = NULL;
- visit_type_int(v, "integer", &obj->integer, &err);
- if (err) {
- goto out;
+ if (!visit_type_int(v, "integer", &obj->integer, errp)) {
+ return false;
}
if (visit_optional(v, "string", &obj->has_string)) {
- visit_type_str(v, "string", &obj->string, &err);
- if (err) {
- goto out;
+ if (!visit_type_str(v, "string", &obj->string, errp)) {
+ return false;
}
}
-
- out:
error_propagate(errp, err);
+ return !err;
}
- void visit_type_UserDefOne(Visitor *v, const char *name, UserDefOne **obj, Error **errp)
+ bool visit_type_UserDefOne(Visitor *v, const char *name, UserDefOne **obj, Error **errp)
{
Error *err = NULL;
- visit_start_struct(v, name, (void **)obj, sizeof(UserDefOne), &err);
- if (err) {
- goto out;
+ if (!visit_start_struct(v, name, (void **)obj, sizeof(UserDefOne), errp)) {
+ return false;
}
if (!*obj) {
/* incomplete */
@@ -1461,19 +1457,18 @@ Example:
qapi_free_UserDefOne(*obj);
*obj = NULL;
}
- out:
error_propagate(errp, err);
+ return !err;
}
- void visit_type_UserDefOneList(Visitor *v, const char *name, UserDefOneList **obj, Error **errp)
+ bool visit_type_UserDefOneList(Visitor *v, const char *name, UserDefOneList **obj, Error **errp)
{
Error *err = NULL;
UserDefOneList *tail;
size_t size = sizeof(**obj);
- visit_start_list(v, name, (GenericList **)obj, size, &err);
- if (err) {
- goto out;
+ if (!visit_start_list(v, name, (GenericList **)obj, size, errp)) {
+ return false;
}
for (tail = *obj; tail;
@@ -1492,21 +1487,19 @@ Example:
qapi_free_UserDefOneList(*obj);
*obj = NULL;
}
- out:
error_propagate(errp, err);
+ return !err;
}
- void visit_type_q_obj_my_command_arg_members(Visitor *v, q_obj_my_command_arg *obj, Error **errp)
+ bool visit_type_q_obj_my_command_arg_members(Visitor *v, q_obj_my_command_arg *obj, Error **errp)
{
Error *err = NULL;
- visit_type_UserDefOneList(v, "arg1", &obj->arg1, &err);
- if (err) {
- goto out;
+ if (!visit_type_UserDefOneList(v, "arg1", &obj->arg1, errp)) {
+ return false;
}
-
- out:
error_propagate(errp, err);
+ return !err;
}
[Uninteresting stuff omitted...]