[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PULL 41/53] qapi: Purge error_propagate() from QAPI core
From: |
Markus Armbruster |
Subject: |
[PULL 41/53] qapi: Purge error_propagate() from QAPI core |
Date: |
Tue, 7 Jul 2020 23:24:51 +0200 |
Signed-off-by: Markus Armbruster <armbru@redhat.com>
Reviewed-by: Eric Blake <eblake@redhat.com>
Message-Id: <20200707160613.848843-42-armbru@redhat.com>
---
qapi/qapi-visit-core.c | 40 +++++++++++++++++++---------------------
1 file changed, 19 insertions(+), 21 deletions(-)
diff --git a/qapi/qapi-visit-core.c b/qapi/qapi-visit-core.c
index 5a9c47aabf..7e5f40e7f0 100644
--- a/qapi/qapi-visit-core.c
+++ b/qapi/qapi-visit-core.c
@@ -39,19 +39,18 @@ void visit_free(Visitor *v)
bool visit_start_struct(Visitor *v, const char *name, void **obj,
size_t size, Error **errp)
{
- Error *err = NULL;
+ bool ok;
trace_visit_start_struct(v, name, obj, size);
if (obj) {
assert(size);
assert(!(v->type & VISITOR_OUTPUT) || *obj);
}
- v->start_struct(v, name, obj, size, &err);
+ ok = v->start_struct(v, name, obj, size, errp);
if (obj && (v->type & VISITOR_INPUT)) {
- assert(!err != !*obj);
+ assert(ok != !*obj);
}
- error_propagate(errp, err);
- return !err;
+ return ok;
}
bool visit_check_struct(Visitor *v, Error **errp)
@@ -69,16 +68,15 @@ void visit_end_struct(Visitor *v, void **obj)
bool visit_start_list(Visitor *v, const char *name, GenericList **list,
size_t size, Error **errp)
{
- Error *err = NULL;
+ bool ok;
assert(!list || size >= sizeof(GenericList));
trace_visit_start_list(v, name, list, size);
- v->start_list(v, name, list, size, &err);
+ ok = v->start_list(v, name, list, size, errp);
if (list && (v->type & VISITOR_INPUT)) {
- assert(!(err && *list));
+ assert(ok || !*list);
}
- error_propagate(errp, err);
- return !err;
+ return ok;
}
GenericList *visit_next_list(Visitor *v, GenericList *tail, size_t size)
@@ -104,19 +102,20 @@ bool visit_start_alternate(Visitor *v, const char *name,
GenericAlternate **obj, size_t size,
Error **errp)
{
- Error *err = NULL;
+ bool ok;
assert(obj && size >= sizeof(GenericAlternate));
assert(!(v->type & VISITOR_OUTPUT) || *obj);
trace_visit_start_alternate(v, name, obj, size);
- if (v->start_alternate) {
- v->start_alternate(v, name, obj, size, &err);
+ if (!v->start_alternate) {
+ assert(!(v->type & VISITOR_INPUT));
+ return true;
}
+ ok = v->start_alternate(v, name, obj, size, errp);
if (v->type & VISITOR_INPUT) {
- assert(v->start_alternate && !err != !*obj);
+ assert(ok != !*obj);
}
- error_propagate(errp, err);
- return !err;
+ return ok;
}
void visit_end_alternate(Visitor *v, void **obj)
@@ -309,7 +308,7 @@ bool visit_type_bool(Visitor *v, const char *name, bool
*obj, Error **errp)
bool visit_type_str(Visitor *v, const char *name, char **obj, Error **errp)
{
- Error *err = NULL;
+ bool ok;
assert(obj);
/* TODO: Fix callers to not pass NULL when they mean "", so that we
@@ -317,12 +316,11 @@ bool visit_type_str(Visitor *v, const char *name, char
**obj, Error **errp)
assert(!(v->type & VISITOR_OUTPUT) || *obj);
*/
trace_visit_type_str(v, name, obj);
- v->type_str(v, name, obj, &err);
+ ok = v->type_str(v, name, obj, errp);
if (v->type & VISITOR_INPUT) {
- assert(!err != !*obj);
+ assert(ok != !*obj);
}
- error_propagate(errp, err);
- return !err;
+ return ok;
}
bool visit_type_number(Visitor *v, const char *name, double *obj,
--
2.26.2
- [PULL 44/53] qdev: Ignore Error objects where the return value suffices, (continued)
- [PULL 44/53] qdev: Ignore Error objects where the return value suffices, Markus Armbruster, 2020/07/08
- [PULL 52/53] nbd: Use ERRP_GUARD(), Markus Armbruster, 2020/07/08
- [PULL 27/53] qom: Make functions taking Error ** return bool, not void, Markus Armbruster, 2020/07/08
- [PULL 09/53] qemu-option: Factor out helper find_default_by_name(), Markus Armbruster, 2020/07/08
- [PULL 25/53] qom: Use return values to check for error where that's simpler, Markus Armbruster, 2020/07/08
- [PULL 35/53] error: Eliminate error_propagate() with Coccinelle, part 2, Markus Armbruster, 2020/07/08
- [PULL 19/53] qapi: Use returned bool to check for failure, manual part, Markus Armbruster, 2020/07/08
- [PULL 05/53] macio: Tidy up error handling in macio_newworld_realize(), Markus Armbruster, 2020/07/08
- [PULL 28/53] qom: Use returned bool to check for failure, Coccinelle part, Markus Armbruster, 2020/07/08
- [PULL 22/53] qom: Rename qdev_get_type() to object_get_type(), Markus Armbruster, 2020/07/08
- [PULL 41/53] qapi: Purge error_propagate() from QAPI core,
Markus Armbruster <=
- [PULL 24/53] qom: Don't handle impossible object_property_get_link() failure, Markus Armbruster, 2020/07/08
- [PULL 45/53] hmp: Ignore Error objects where the return value suffices, Markus Armbruster, 2020/07/08
- [PULL 16/53] hmp: Eliminate a variable in hmp_migrate_set_parameter(), Markus Armbruster, 2020/07/08
- [PULL 49/53] pflash: Use ERRP_GUARD(), Markus Armbruster, 2020/07/08
- [PULL 30/53] qom: Make functions taking Error ** return bool, not 0/-1, Markus Armbruster, 2020/07/08
- [PULL 46/53] error: New macro ERRP_GUARD(), Markus Armbruster, 2020/07/08
- [PULL 42/53] error: Avoid error_propagate() after migrate_add_blocker(), Markus Armbruster, 2020/07/08
- [PULL 47/53] scripts: Coccinelle script to use ERRP_GUARD(), Markus Armbruster, 2020/07/08
- [PULL 51/53] virtio-9p: Use ERRP_GUARD(), Markus Armbruster, 2020/07/08
- [PULL 13/53] qemu-option: Make functions taking Error ** return bool, not void, Markus Armbruster, 2020/07/08