Skip to content

Commit

Permalink
qapi: Use returned bool to check for failure, manual part
Browse files Browse the repository at this point in the history
The previous commit used Coccinelle to convert from checking the Error
object to checking the return value.  Convert a few more manually.
Also tweak control flow in places to conform to the conventional "if
error bail out" pattern.

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-20-armbru@redhat.com>
  • Loading branch information
Markus Armbruster committed Jul 10, 2020
1 parent 62a35aa commit 1421703
Show file tree
Hide file tree
Showing 9 changed files with 44 additions and 56 deletions.
50 changes: 23 additions & 27 deletions accel/kvm/kvm-all.c
Original file line number Diff line number Diff line change
Expand Up @@ -3128,37 +3128,33 @@ static void kvm_set_kernel_irqchip(Object *obj, Visitor *v,
const char *name, void *opaque,
Error **errp)
{
Error *err = NULL;
KVMState *s = KVM_STATE(obj);
OnOffSplit mode;

visit_type_OnOffSplit(v, name, &mode, &err);
if (err) {
error_propagate(errp, err);
if (!visit_type_OnOffSplit(v, name, &mode, errp)) {
return;
} else {
switch (mode) {
case ON_OFF_SPLIT_ON:
s->kernel_irqchip_allowed = true;
s->kernel_irqchip_required = true;
s->kernel_irqchip_split = ON_OFF_AUTO_OFF;
break;
case ON_OFF_SPLIT_OFF:
s->kernel_irqchip_allowed = false;
s->kernel_irqchip_required = false;
s->kernel_irqchip_split = ON_OFF_AUTO_OFF;
break;
case ON_OFF_SPLIT_SPLIT:
s->kernel_irqchip_allowed = true;
s->kernel_irqchip_required = true;
s->kernel_irqchip_split = ON_OFF_AUTO_ON;
break;
default:
/* The value was checked in visit_type_OnOffSplit() above. If
* we get here, then something is wrong in QEMU.
*/
abort();
}
}
switch (mode) {
case ON_OFF_SPLIT_ON:
s->kernel_irqchip_allowed = true;
s->kernel_irqchip_required = true;
s->kernel_irqchip_split = ON_OFF_AUTO_OFF;
break;
case ON_OFF_SPLIT_OFF:
s->kernel_irqchip_allowed = false;
s->kernel_irqchip_required = false;
s->kernel_irqchip_split = ON_OFF_AUTO_OFF;
break;
case ON_OFF_SPLIT_SPLIT:
s->kernel_irqchip_allowed = true;
s->kernel_irqchip_required = true;
s->kernel_irqchip_split = ON_OFF_AUTO_ON;
break;
default:
/* The value was checked in visit_type_OnOffSplit() above. If
* we get here, then something is wrong in QEMU.
*/
abort();
}
}

Expand Down
5 changes: 2 additions & 3 deletions block/throttle-groups.c
Original file line number Diff line number Diff line change
Expand Up @@ -895,8 +895,8 @@ static void throttle_group_set_limits(Object *obj, Visitor *v,
ThrottleLimits *argp;
Error *local_err = NULL;

if (!visit_type_ThrottleLimits(v, name, &argp, &local_err)) {
goto ret;
if (!visit_type_ThrottleLimits(v, name, &argp, errp)) {
return;
}
qemu_mutex_lock(&tg->lock);
throttle_get_config(&tg->ts, &cfg);
Expand All @@ -908,7 +908,6 @@ static void throttle_group_set_limits(Object *obj, Visitor *v,

unlock:
qemu_mutex_unlock(&tg->lock);
ret:
qapi_free_ThrottleLimits(argp);
error_propagate(errp, local_err);
return;
Expand Down
4 changes: 2 additions & 2 deletions bootdevice.c
Original file line number Diff line number Diff line change
Expand Up @@ -297,8 +297,8 @@ static void device_set_bootindex(Object *obj, Visitor *v, const char *name,
int32_t boot_index;
Error *local_err = NULL;

if (!visit_type_int32(v, name, &boot_index, &local_err)) {
goto out;
if (!visit_type_int32(v, name, &boot_index, errp)) {
return;
}
/* check whether bootindex is present in fw_boot_order list */
check_boot_index(boot_index, &local_err);
Expand Down
12 changes: 6 additions & 6 deletions hw/core/qdev-properties.c
Original file line number Diff line number Diff line change
Expand Up @@ -761,15 +761,15 @@ static void set_pci_devfn(Object *obj, Visitor *v, const char *name,
if (!visit_type_str(v, name, &str, &local_err)) {
error_free(local_err);
local_err = NULL;
visit_type_int32(v, name, &value, &local_err);
if (local_err) {
error_propagate(errp, local_err);
} else if (value < -1 || value > 255) {
if (!visit_type_int32(v, name, &value, errp)) {
return;
}
if (value < -1 || value > 255) {
error_setg(errp, QERR_INVALID_PARAMETER_VALUE,
name ? name : "null", "pci_devfn");
} else {
*ptr = value;
return;
}
*ptr = value;
return;
}

Expand Down
4 changes: 2 additions & 2 deletions hw/ide/qdev.c
Original file line number Diff line number Diff line change
Expand Up @@ -245,8 +245,8 @@ static void ide_dev_set_bootindex(Object *obj, Visitor *v, const char *name,
int32_t boot_index;
Error *local_err = NULL;

if (!visit_type_int32(v, name, &boot_index, &local_err)) {
goto out;
if (!visit_type_int32(v, name, &boot_index, errp)) {
return;
}
/* check whether bootindex is present in fw_boot_order list */
check_boot_index(boot_index, &local_err);
Expand Down
9 changes: 3 additions & 6 deletions hw/mem/nvdimm.c
Original file line number Diff line number Diff line change
Expand Up @@ -85,21 +85,18 @@ static void nvdimm_set_uuid(Object *obj, Visitor *v, const char *name,
void *opaque, Error **errp)
{
NVDIMMDevice *nvdimm = NVDIMM(obj);
Error *local_err = NULL;
char *value;

if (!visit_type_str(v, name, &value, &local_err)) {
goto out;
if (!visit_type_str(v, name, &value, errp)) {
return;
}

if (qemu_uuid_parse(value, &nvdimm->uuid) != 0) {
error_setg(errp, "Property '%s.%s' has invalid value",
object_get_typename(obj), name);
}
g_free(value);

out:
error_propagate(errp, local_err);
g_free(value);
}


Expand Down
4 changes: 2 additions & 2 deletions hw/net/ne2000-isa.c
Original file line number Diff line number Diff line change
Expand Up @@ -113,8 +113,8 @@ static void isa_ne2000_set_bootindex(Object *obj, Visitor *v,
int32_t boot_index;
Error *local_err = NULL;

if (!visit_type_int32(v, name, &boot_index, &local_err)) {
goto out;
if (!visit_type_int32(v, name, &boot_index, errp)) {
return;
}
/* check whether bootindex is present in fw_boot_order list */
check_boot_index(boot_index, &local_err);
Expand Down
4 changes: 2 additions & 2 deletions hw/usb/dev-storage.c
Original file line number Diff line number Diff line change
Expand Up @@ -736,8 +736,8 @@ static void usb_msd_set_bootindex(Object *obj, Visitor *v, const char *name,
int32_t boot_index;
Error *local_err = NULL;

if (!visit_type_int32(v, name, &boot_index, &local_err)) {
goto out;
if (!visit_type_int32(v, name, &boot_index, errp)) {
return;
}
/* check whether bootindex is present in fw_boot_order list */
check_boot_index(boot_index, &local_err);
Expand Down
8 changes: 2 additions & 6 deletions net/net.c
Original file line number Diff line number Diff line change
Expand Up @@ -1062,7 +1062,6 @@ static int net_client_init(QemuOpts *opts, bool is_netdev, Error **errp)
{
gchar **substrings = NULL;
Netdev *object = NULL;
Error *err = NULL;
int ret = -1;
Visitor *v = opts_visitor_new(opts);

Expand Down Expand Up @@ -1110,16 +1109,13 @@ static int net_client_init(QemuOpts *opts, bool is_netdev, Error **errp)
qemu_opts_set_id(opts, g_strdup_printf("__org.qemu.net%i", idx++));
}

visit_type_Netdev(v, NULL, &object, &err);

if (!err) {
ret = net_client_init1(object, is_netdev, &err);
if (visit_type_Netdev(v, NULL, &object, errp)) {
ret = net_client_init1(object, is_netdev, errp);
}

qapi_free_Netdev(object);

out:
error_propagate(errp, err);
g_strfreev(substrings);
visit_free(v);
return ret;
Expand Down

0 comments on commit 1421703

Please sign in to comment.