|
From: | Eric Blake |
Subject: | Re: [PATCH 43/46] qdev: Smooth error checking manually |
Date: | Wed, 24 Jun 2020 16:42:57 -0500 |
User-agent: | Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101 Thunderbird/68.9.0 |
On 6/24/20 11:43 AM, Markus Armbruster wrote:
When foo(..., &err) is followed by error_propagate(errp, err), we can often just as well do foo(..., errp). The previous commit did that for simple cases with Coccinelle. Do it for one more manually. Signed-off-by: Markus Armbruster <armbru@redhat.com> --- hw/block/fdc.c | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-)
@@ -2566,11 +2566,9 @@ static void fdctrl_connect_drives(FDCtrl *fdctrl, DeviceState *fdc_dev, blk_ref(blk); blk_detach_dev(blk, fdc_dev); fdctrl->qdev_for_drives[i].blk = NULL; - qdev_prop_set_drive_err(dev, "drive", blk, &local_err); + ok = qdev_prop_set_drive_err(dev, "drive", blk, errp); blk_unref(blk);
Perhaps some glib g_auto* magic could make this even easier (to mark a variable to be blk_unref'd when it goes out of scope). But for now, your pattern is fine.
- - if (local_err) { - error_propagate(errp, local_err); + if (!ok) { return; }
Reviewed-by: Eric Blake <eblake@redhat.com> -- Eric Blake, Principal Software Engineer Red Hat, Inc. +1-919-301-3226 Virtualization: qemu.org | libvirt.org
[Prev in Thread] | Current Thread | [Next in Thread] |