[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH] Use error_is_set() only when necessary
From: |
Luiz Capitulino |
Subject: |
Re: [Qemu-devel] [PATCH] Use error_is_set() only when necessary |
Date: |
Mon, 10 Feb 2014 15:54:41 -0500 |
On Thu, 30 Jan 2014 15:07:28 +0100
Markus Armbruster <address@hidden> wrote:
> error_is_set(&var) is the same as var != NULL, but it takes
> whole-program analysis to figure that out. Unnecessarily hard for
> optimizers, static checkers, and human readers. Dumb it down to
> obvious.
>
> Gets rid of several dozen Coverity false positives.
>
> Note that the obvious form is already used in many places.
>
> Signed-off-by: Markus Armbruster <address@hidden>
Applied to the qmp branch, one comment below.
> ---
> block.c | 16 +++++++--------
> block/blkdebug.c | 4 ++--
> block/blkverify.c | 2 +-
> block/curl.c | 2 +-
> block/gluster.c | 2 +-
> block/iscsi.c | 2 +-
> block/nbd.c | 2 +-
> block/qapi.c | 4 ++--
> block/qcow2.c | 6 +++---
> block/raw-posix.c | 12 +++++------
> block/raw-win32.c | 4 ++--
> block/raw_bsd.c | 2 +-
> block/rbd.c | 2 +-
> block/sheepdog.c | 2 +-
> block/snapshot.c | 2 +-
> block/vvfat.c | 2 +-
> blockdev.c | 42
> +++++++++++++++++++-------------------
> blockjob.c | 4 ++--
> hmp.c | 8 ++++----
> hw/pci/pci-hotplug-old.c | 4 ++--
> hw/usb/dev-network.c | 2 +-
> net/net.c | 12 +++++------
> qdev-monitor.c | 2 +-
> qemu-char.c | 6 +++---
> qemu-img.c | 8 ++++----
> qga/commands-posix.c | 18 ++++++++--------
> qga/commands-win32.c | 2 +-
> savevm.c | 4 ++--
> tests/test-qmp-input-strict.c | 16 +++++++--------
> tests/test-qmp-input-visitor.c | 20 +++++++++---------
> tests/test-qmp-output-visitor.c | 22 ++++++++++----------
> tests/test-string-input-visitor.c | 20 +++++++++---------
> tests/test-string-output-visitor.c | 14 ++++++-------
> tpm.c | 2 +-
> util/qemu-config.c | 16 +++++++--------
> util/qemu-option.c | 22 ++++++++++----------
> vl.c | 2 +-
> 37 files changed, 156 insertions(+), 156 deletions(-)
>
> diff --git a/block.c b/block.c
> index cb21a5f..aa0588f 100644
> --- a/block.c
> +++ b/block.c
> @@ -421,7 +421,7 @@ static void coroutine_fn bdrv_create_co_entry(void
> *opaque)
> assert(cco->drv);
>
> ret = cco->drv->bdrv_create(cco->filename, cco->options, &local_err);
> - if (error_is_set(&local_err)) {
> + if (local_err) {
> error_propagate(&cco->err, local_err);
> }
> cco->ret = ret;
> @@ -460,7 +460,7 @@ int bdrv_create(BlockDriver *drv, const char* filename,
>
> ret = cco.ret;
> if (ret < 0) {
> - if (error_is_set(&cco.err)) {
> + if (cco.err) {
> error_propagate(errp, cco.err);
> } else {
> error_setg_errno(errp, -ret, "Could not create image");
> @@ -486,7 +486,7 @@ int bdrv_create_file(const char* filename,
> QEMUOptionParameter *options,
> }
>
> ret = bdrv_create(drv, filename, options, &local_err);
> - if (error_is_set(&local_err)) {
> + if (local_err) {
> error_propagate(errp, local_err);
> }
> return ret;
> @@ -903,7 +903,7 @@ static int bdrv_open_common(BlockDriverState *bs,
> BlockDriverState *file,
> }
>
> if (ret < 0) {
> - if (error_is_set(&local_err)) {
> + if (local_err) {
> error_propagate(errp, local_err);
> } else if (bs->filename[0]) {
> error_setg_errno(errp, -ret, "Could not open '%s'",
> bs->filename);
> @@ -1025,7 +1025,7 @@ int bdrv_file_open(BlockDriverState **pbs, const char
> *filename,
> /* Parse the filename and open it */
> if (drv->bdrv_parse_filename && filename) {
> drv->bdrv_parse_filename(filename, options, &local_err);
> - if (error_is_set(&local_err)) {
> + if (local_err) {
> error_propagate(errp, local_err);
> ret = -EINVAL;
> goto fail;
> @@ -1399,7 +1399,7 @@ fail:
> QDECREF(bs->options);
> QDECREF(options);
> bs->options = NULL;
> - if (error_is_set(&local_err)) {
> + if (local_err) {
> error_propagate(errp, local_err);
> }
> return ret;
> @@ -1407,7 +1407,7 @@ fail:
> close_and_fail:
> bdrv_close(bs);
> QDECREF(options);
> - if (error_is_set(&local_err)) {
> + if (local_err) {
> error_propagate(errp, local_err);
> }
> return ret;
> @@ -5335,7 +5335,7 @@ out:
> free_option_parameters(create_options);
> free_option_parameters(param);
>
> - if (error_is_set(&local_err)) {
> + if (local_err) {
> error_propagate(errp, local_err);
> }
> }
> diff --git a/block/blkdebug.c b/block/blkdebug.c
> index 56c4cd0..bbbdd80 100644
> --- a/block/blkdebug.c
> +++ b/block/blkdebug.c
> @@ -303,7 +303,7 @@ static int read_config(BDRVBlkdebugState *s, const char
> *filename,
> }
>
> qemu_config_parse_qdict(options, config_groups, &local_err);
> - if (error_is_set(&local_err)) {
> + if (local_err) {
> error_propagate(errp, local_err);
> ret = -EINVAL;
> goto fail;
> @@ -393,7 +393,7 @@ static int blkdebug_open(BlockDriverState *bs, QDict
> *options, int flags,
>
> opts = qemu_opts_create(&runtime_opts, NULL, 0, &error_abort);
> qemu_opts_absorb_qdict(opts, options, &local_err);
> - if (error_is_set(&local_err)) {
> + if (local_err) {
> error_propagate(errp, local_err);
> ret = -EINVAL;
> goto fail;
> diff --git a/block/blkverify.c b/block/blkverify.c
> index cfcbcf4..1563c88 100644
> --- a/block/blkverify.c
> +++ b/block/blkverify.c
> @@ -128,7 +128,7 @@ static int blkverify_open(BlockDriverState *bs, QDict
> *options, int flags,
>
> opts = qemu_opts_create(&runtime_opts, NULL, 0, &error_abort);
> qemu_opts_absorb_qdict(opts, options, &local_err);
> - if (error_is_set(&local_err)) {
> + if (local_err) {
> error_propagate(errp, local_err);
> ret = -EINVAL;
> goto fail;
> diff --git a/block/curl.c b/block/curl.c
> index a807584..bb1fc4a 100644
> --- a/block/curl.c
> +++ b/block/curl.c
> @@ -463,7 +463,7 @@ static int curl_open(BlockDriverState *bs, QDict
> *options, int flags,
>
> opts = qemu_opts_create(&runtime_opts, NULL, 0, &error_abort);
> qemu_opts_absorb_qdict(opts, options, &local_err);
> - if (error_is_set(&local_err)) {
> + if (local_err) {
> qerror_report_err(local_err);
> error_free(local_err);
> goto out_noclean;
> diff --git a/block/gluster.c b/block/gluster.c
> index a009b15..58eab07 100644
> --- a/block/gluster.c
> +++ b/block/gluster.c
> @@ -282,7 +282,7 @@ static int qemu_gluster_open(BlockDriverState *bs, QDict
> *options,
>
> opts = qemu_opts_create(&runtime_opts, NULL, 0, &error_abort);
> qemu_opts_absorb_qdict(opts, options, &local_err);
> - if (error_is_set(&local_err)) {
> + if (local_err) {
> qerror_report_err(local_err);
> error_free(local_err);
> ret = -EINVAL;
> diff --git a/block/iscsi.c b/block/iscsi.c
> index 6f4af72..835c66b 100644
> --- a/block/iscsi.c
> +++ b/block/iscsi.c
> @@ -1123,7 +1123,7 @@ static int iscsi_open(BlockDriverState *bs, QDict
> *options, int flags,
>
> opts = qemu_opts_create(&runtime_opts, NULL, 0, &error_abort);
> qemu_opts_absorb_qdict(opts, options, &local_err);
> - if (error_is_set(&local_err)) {
> + if (local_err) {
> qerror_report_err(local_err);
> error_free(local_err);
> ret = -EINVAL;
> diff --git a/block/nbd.c b/block/nbd.c
> index 327e913..abae506 100644
> --- a/block/nbd.c
> +++ b/block/nbd.c
> @@ -209,7 +209,7 @@ static int nbd_config(BDRVNBDState *s, QDict *options,
> char **export)
> &error_abort);
>
> qemu_opts_absorb_qdict(s->socket_opts, options, &local_err);
> - if (error_is_set(&local_err)) {
> + if (local_err) {
> qerror_report_err(local_err);
> error_free(local_err);
> return -EINVAL;
> diff --git a/block/qapi.c b/block/qapi.c
> index 8f4134b..8f2b4db 100644
> --- a/block/qapi.c
> +++ b/block/qapi.c
> @@ -271,7 +271,7 @@ void bdrv_query_info(BlockDriverState *bs,
> p_image_info = &info->inserted->image;
> while (1) {
> bdrv_query_image_info(bs0, p_image_info, &local_err);
> - if (error_is_set(&local_err)) {
> + if (local_err) {
> error_propagate(errp, local_err);
> goto err;
> }
> @@ -336,7 +336,7 @@ BlockInfoList *qmp_query_block(Error **errp)
> while ((bs = bdrv_next(bs))) {
> BlockInfoList *info = g_malloc0(sizeof(*info));
> bdrv_query_info(bs, &info->value, &local_err);
> - if (error_is_set(&local_err)) {
> + if (local_err) {
> error_propagate(errp, local_err);
> goto err;
> }
> diff --git a/block/qcow2.c b/block/qcow2.c
> index 2da62b8..04069cd 100644
> --- a/block/qcow2.c
> +++ b/block/qcow2.c
> @@ -671,7 +671,7 @@ static int qcow2_open(BlockDriverState *bs, QDict
> *options, int flags,
> /* Enable lazy_refcounts according to image and command line options */
> opts = qemu_opts_create(&qcow2_runtime_opts, NULL, 0, &error_abort);
> qemu_opts_absorb_qdict(opts, options, &local_err);
> - if (error_is_set(&local_err)) {
> + if (local_err) {
> error_propagate(errp, local_err);
> ret = -EINVAL;
> goto fail;
> @@ -1603,7 +1603,7 @@ static int qcow2_create2(const char *filename, int64_t
> total_size,
> ret = bdrv_open(bs, filename, NULL,
> BDRV_O_RDWR | BDRV_O_CACHE_WB | BDRV_O_NO_BACKING,
> drv, &local_err);
> - if (error_is_set(&local_err)) {
> + if (local_err) {
> error_propagate(errp, local_err);
> goto out;
> }
> @@ -1683,7 +1683,7 @@ static int qcow2_create(const char *filename,
> QEMUOptionParameter *options,
>
> ret = qcow2_create2(filename, sectors, backing_file, backing_fmt, flags,
> cluster_size, prealloc, options, version,
> &local_err);
> - if (error_is_set(&local_err)) {
> + if (local_err) {
> error_propagate(errp, local_err);
> }
> return ret;
> diff --git a/block/raw-posix.c b/block/raw-posix.c
> index 126a634..161ea14 100644
> --- a/block/raw-posix.c
> +++ b/block/raw-posix.c
> @@ -361,7 +361,7 @@ static int raw_open_common(BlockDriverState *bs, QDict
> *options,
>
> opts = qemu_opts_create(&raw_runtime_opts, NULL, 0, &error_abort);
> qemu_opts_absorb_qdict(opts, options, &local_err);
> - if (error_is_set(&local_err)) {
> + if (local_err) {
> error_propagate(errp, local_err);
> ret = -EINVAL;
> goto fail;
> @@ -448,7 +448,7 @@ static int raw_open(BlockDriverState *bs, QDict *options,
> int flags,
>
> s->type = FTYPE_FILE;
> ret = raw_open_common(bs, options, flags, 0, &local_err);
> - if (error_is_set(&local_err)) {
> + if (local_err) {
> error_propagate(errp, local_err);
> }
> return ret;
> @@ -1597,7 +1597,7 @@ static int hdev_open(BlockDriverState *bs, QDict
> *options, int flags,
>
> ret = raw_open_common(bs, options, flags, 0, &local_err);
> if (ret < 0) {
> - if (error_is_set(&local_err)) {
> + if (local_err) {
> error_propagate(errp, local_err);
> }
> return ret;
> @@ -1832,7 +1832,7 @@ static int floppy_open(BlockDriverState *bs, QDict
> *options, int flags,
> /* open will not fail even if no floppy is inserted, so add O_NONBLOCK */
> ret = raw_open_common(bs, options, flags, O_NONBLOCK, &local_err);
> if (ret) {
> - if (error_is_set(&local_err)) {
> + if (local_err) {
> error_propagate(errp, local_err);
> }
> return ret;
> @@ -1961,7 +1961,7 @@ static int cdrom_open(BlockDriverState *bs, QDict
> *options, int flags,
>
> /* open will not fail even if no CD is inserted, so add O_NONBLOCK */
> ret = raw_open_common(bs, options, flags, O_NONBLOCK, &local_err);
> - if (error_is_set(&local_err)) {
> + if (local_err) {
> error_propagate(errp, local_err);
> }
> return ret;
> @@ -2078,7 +2078,7 @@ static int cdrom_open(BlockDriverState *bs, QDict
> *options, int flags,
>
> ret = raw_open_common(bs, options, flags, 0, &local_err);
> if (ret) {
> - if (error_is_set(&local_err)) {
> + if (local_err) {
> error_propagate(errp, local_err);
> }
> return ret;
> diff --git a/block/raw-win32.c b/block/raw-win32.c
> index beb7f23..ae1c8e6 100644
> --- a/block/raw-win32.c
> +++ b/block/raw-win32.c
> @@ -279,7 +279,7 @@ static int raw_open(BlockDriverState *bs, QDict *options,
> int flags,
>
> opts = qemu_opts_create(&raw_runtime_opts, NULL, 0, &error_abort);
> qemu_opts_absorb_qdict(opts, options, &local_err);
> - if (error_is_set(&local_err)) {
> + if (local_err) {
> error_propagate(errp, local_err);
> ret = -EINVAL;
> goto fail;
> @@ -594,7 +594,7 @@ static int hdev_open(BlockDriverState *bs, QDict
> *options, int flags,
> QemuOpts *opts = qemu_opts_create(&raw_runtime_opts, NULL, 0,
> &error_abort);
> qemu_opts_absorb_qdict(opts, options, &local_err);
> - if (error_is_set(&local_err)) {
> + if (local_err) {
> error_propagate(errp, local_err);
> ret = -EINVAL;
> goto done;
> diff --git a/block/raw_bsd.c b/block/raw_bsd.c
> index 978ae7a..2e95208 100644
> --- a/block/raw_bsd.c
> +++ b/block/raw_bsd.c
> @@ -140,7 +140,7 @@ static int raw_create(const char *filename,
> QEMUOptionParameter *options,
> int ret;
>
> ret = bdrv_create_file(filename, options, &local_err);
> - if (error_is_set(&local_err)) {
> + if (local_err) {
> error_propagate(errp, local_err);
> }
> return ret;
> diff --git a/block/rbd.c b/block/rbd.c
> index 121fae2..dbc79f4 100644
> --- a/block/rbd.c
> +++ b/block/rbd.c
> @@ -440,7 +440,7 @@ static int qemu_rbd_open(BlockDriverState *bs, QDict
> *options, int flags,
>
> opts = qemu_opts_create(&runtime_opts, NULL, 0, &error_abort);
> qemu_opts_absorb_qdict(opts, options, &local_err);
> - if (error_is_set(&local_err)) {
> + if (local_err) {
> qerror_report_err(local_err);
> error_free(local_err);
> qemu_opts_del(opts);
> diff --git a/block/sheepdog.c b/block/sheepdog.c
> index 672b9c9..e6c0376 100644
> --- a/block/sheepdog.c
> +++ b/block/sheepdog.c
> @@ -1385,7 +1385,7 @@ static int sd_open(BlockDriverState *bs, QDict
> *options, int flags,
>
> opts = qemu_opts_create(&runtime_opts, NULL, 0, &error_abort);
> qemu_opts_absorb_qdict(opts, options, &local_err);
> - if (error_is_set(&local_err)) {
> + if (local_err) {
> qerror_report_err(local_err);
> error_free(local_err);
> ret = -EINVAL;
> diff --git a/block/snapshot.c b/block/snapshot.c
> index 9047f8d..85c52ff 100644
> --- a/block/snapshot.c
> +++ b/block/snapshot.c
> @@ -345,7 +345,7 @@ int bdrv_snapshot_load_tmp_by_id_or_name(BlockDriverState
> *bs,
> ret = bdrv_snapshot_load_tmp(bs, NULL, id_or_name, &local_err);
> }
>
> - if (error_is_set(&local_err)) {
> + if (local_err) {
> error_propagate(errp, local_err);
> }
>
> diff --git a/block/vvfat.c b/block/vvfat.c
> index 664941c..a19e4ca 100644
> --- a/block/vvfat.c
> +++ b/block/vvfat.c
> @@ -1085,7 +1085,7 @@ DLOG(if (stderr == NULL) {
>
> opts = qemu_opts_create(&runtime_opts, NULL, 0, &error_abort);
> qemu_opts_absorb_qdict(opts, options, &local_err);
> - if (error_is_set(&local_err)) {
> + if (local_err) {
> qerror_report_err(local_err);
> error_free(local_err);
> ret = -EINVAL;
> diff --git a/blockdev.c b/blockdev.c
> index 36ceece..be05a58 100644
> --- a/blockdev.c
> +++ b/blockdev.c
> @@ -331,13 +331,13 @@ static DriveInfo *blockdev_init(const char *file, QDict
> *bs_opts,
> * stay in bs_opts for processing by bdrv_open(). */
> id = qdict_get_try_str(bs_opts, "id");
> opts = qemu_opts_create(&qemu_common_drive_opts, id, 1, &error);
> - if (error_is_set(&error)) {
> + if (error) {
> error_propagate(errp, error);
> return NULL;
> }
>
> qemu_opts_absorb_qdict(opts, bs_opts, &error);
> - if (error_is_set(&error)) {
> + if (error) {
> error_propagate(errp, error);
> goto early_err;
> }
> @@ -443,7 +443,7 @@ static DriveInfo *blockdev_init(const char *file, QDict
> *bs_opts,
> }
>
> on_write_error = parse_block_error_action(buf, 0, &error);
> - if (error_is_set(&error)) {
> + if (error) {
> error_propagate(errp, error);
> goto early_err;
> }
> @@ -457,7 +457,7 @@ static DriveInfo *blockdev_init(const char *file, QDict
> *bs_opts,
> }
>
> on_read_error = parse_block_error_action(buf, 1, &error);
> - if (error_is_set(&error)) {
> + if (error) {
> error_propagate(errp, error);
> goto early_err;
> }
> @@ -688,7 +688,7 @@ DriveInfo *drive_init(QemuOpts *all_opts,
> BlockInterfaceType block_default_type)
> legacy_opts = qemu_opts_create(&qemu_legacy_drive_opts, NULL, 0,
> &error_abort);
> qemu_opts_absorb_qdict(legacy_opts, bs_opts, &local_err);
> - if (error_is_set(&local_err)) {
> + if (local_err) {
> qerror_report_err(local_err);
> error_free(local_err);
> goto fail;
> @@ -875,13 +875,13 @@ DriveInfo *drive_init(QemuOpts *all_opts,
> BlockInterfaceType block_default_type)
> /* Actual block device init: Functionality shared with blockdev-add */
> dinfo = blockdev_init(filename, bs_opts, type, &local_err);
> if (dinfo == NULL) {
> - if (error_is_set(&local_err)) {
> + if (local_err) {
> qerror_report_err(local_err);
> error_free(local_err);
> }
> goto fail;
> } else {
> - assert(!error_is_set(&local_err));
> + assert(!local_err);
> }
Not related to this patch, but this else clause is checking if
dinfo != NULL and local_err != NULL, right? Shouldn't it be moved
into blockdev_init() instead?
>
> /* Set legacy DriveInfo fields */
> @@ -1017,7 +1017,7 @@ SnapshotInfo
> *qmp_blockdev_snapshot_delete_internal_sync(const char *device,
> }
>
> ret = bdrv_snapshot_find_by_id_and_name(bs, id, name, &sn, &local_err);
> - if (error_is_set(&local_err)) {
> + if (local_err) {
> error_propagate(errp, local_err);
> return NULL;
> }
> @@ -1030,7 +1030,7 @@ SnapshotInfo
> *qmp_blockdev_snapshot_delete_internal_sync(const char *device,
> }
>
> bdrv_snapshot_delete(bs, id, name, &local_err);
> - if (error_is_set(&local_err)) {
> + if (local_err) {
> error_propagate(errp, local_err);
> return NULL;
> }
> @@ -1244,7 +1244,7 @@ static void
> external_snapshot_prepare(BlkTransactionState *common,
> state->old_bs = bdrv_lookup_bs(has_device ? device : NULL,
> has_node_name ? node_name : NULL,
> &local_err);
> - if (error_is_set(&local_err)) {
> + if (local_err) {
> error_propagate(errp, local_err);
> return;
> }
> @@ -1289,7 +1289,7 @@ static void
> external_snapshot_prepare(BlkTransactionState *common,
> state->old_bs->filename,
> state->old_bs->drv->format_name,
> NULL, -1, flags, &local_err, false);
> - if (error_is_set(&local_err)) {
> + if (local_err) {
> error_propagate(errp, local_err);
> return;
> }
> @@ -1360,7 +1360,7 @@ static void drive_backup_prepare(BlkTransactionState
> *common, Error **errp)
> backup->has_on_source_error, backup->on_source_error,
> backup->has_on_target_error, backup->on_target_error,
> &local_err);
> - if (error_is_set(&local_err)) {
> + if (local_err) {
> error_propagate(errp, local_err);
> state->bs = NULL;
> state->job = NULL;
> @@ -1452,7 +1452,7 @@ void qmp_transaction(TransactionActionList *dev_list,
> Error **errp)
> QSIMPLEQ_INSERT_TAIL(&snap_bdrv_states, state, entry);
>
> state->ops->prepare(state, &local_err);
> - if (error_is_set(&local_err)) {
> + if (local_err) {
> error_propagate(errp, local_err);
> goto delete_and_fail;
> }
> @@ -1533,7 +1533,7 @@ void qmp_block_passwd(bool has_device, const char
> *device,
> bs = bdrv_lookup_bs(has_device ? device : NULL,
> has_node_name ? node_name : NULL,
> &local_err);
> - if (error_is_set(&local_err)) {
> + if (local_err) {
> error_propagate(errp, local_err);
> return;
> }
> @@ -1598,7 +1598,7 @@ void qmp_change_blockdev(const char *device, const char
> *filename,
> }
>
> eject_device(bs, 0, &err);
> - if (error_is_set(&err)) {
> + if (err) {
> error_propagate(errp, err);
> return;
> }
> @@ -1735,7 +1735,7 @@ void qmp_block_resize(bool has_device, const char
> *device,
> bs = bdrv_lookup_bs(has_device ? device : NULL,
> has_node_name ? node_name : NULL,
> &local_err);
> - if (error_is_set(&local_err)) {
> + if (local_err) {
> error_propagate(errp, local_err);
> return;
> }
> @@ -1828,7 +1828,7 @@ void qmp_block_stream(const char *device, bool has_base,
>
> stream_start(bs, base_bs, base, has_speed ? speed : 0,
> on_error, block_job_cb, bs, &local_err);
> - if (error_is_set(&local_err)) {
> + if (local_err) {
> error_propagate(errp, local_err);
> return;
> }
> @@ -1986,7 +1986,7 @@ void qmp_drive_backup(const char *device, const char
> *target,
> }
> }
>
> - if (error_is_set(&local_err)) {
> + if (local_err) {
> error_propagate(errp, local_err);
> return;
> }
> @@ -2127,7 +2127,7 @@ void qmp_drive_mirror(const char *device, const char
> *target,
> }
> }
>
> - if (error_is_set(&local_err)) {
> + if (local_err) {
> error_propagate(errp, local_err);
> return;
> }
> @@ -2266,7 +2266,7 @@ void qmp_blockdev_add(BlockdevOptions *options, Error
> **errp)
>
> visit_type_BlockdevOptions(qmp_output_get_visitor(ov),
> &options, NULL, &local_err);
> - if (error_is_set(&local_err)) {
> + if (local_err) {
> error_propagate(errp, local_err);
> goto fail;
> }
> @@ -2277,7 +2277,7 @@ void qmp_blockdev_add(BlockdevOptions *options, Error
> **errp)
> qdict_flatten(qdict);
>
> blockdev_init(NULL, qdict, IF_NONE, &local_err);
> - if (error_is_set(&local_err)) {
> + if (local_err) {
> error_propagate(errp, local_err);
> goto fail;
> }
> diff --git a/blockjob.c b/blockjob.c
> index 9e5fd5c..b3ce14c 100644
> --- a/blockjob.c
> +++ b/blockjob.c
> @@ -61,7 +61,7 @@ void *block_job_create(const BlockJobDriver *driver,
> BlockDriverState *bs,
> Error *local_err = NULL;
>
> block_job_set_speed(job, speed, &local_err);
> - if (error_is_set(&local_err)) {
> + if (local_err) {
> bs->job = NULL;
> g_free(job);
> bdrv_set_in_use(bs, 0);
> @@ -92,7 +92,7 @@ void block_job_set_speed(BlockJob *job, int64_t speed,
> Error **errp)
> return;
> }
> job->driver->set_speed(job, speed, &local_err);
> - if (error_is_set(&local_err)) {
> + if (local_err) {
> error_propagate(errp, local_err);
> return;
> }
> diff --git a/hmp.c b/hmp.c
> index 1af0809..5a24ac1 100644
> --- a/hmp.c
> +++ b/hmp.c
> @@ -881,7 +881,7 @@ void hmp_balloon(Monitor *mon, const QDict *qdict)
> Error *errp = NULL;
>
> qmp_balloon(value, &errp);
> - if (error_is_set(&errp)) {
> + if (errp) {
> monitor_printf(mon, "balloon: %s\n", error_get_pretty(errp));
> error_free(errp);
> }
> @@ -1118,7 +1118,7 @@ void hmp_change(Monitor *mon, const QDict *qdict)
> }
>
> qmp_change(device, target, !!arg, arg, &err);
> - if (error_is_set(&err) &&
> + if (err &&
> error_get_class(err) == ERROR_CLASS_DEVICE_ENCRYPTED) {
> error_free(err);
> monitor_read_block_device_key(mon, device, NULL, NULL);
> @@ -1335,12 +1335,12 @@ void hmp_netdev_add(Monitor *mon, const QDict *qdict)
> QemuOpts *opts;
>
> opts = qemu_opts_from_qdict(qemu_find_opts("netdev"), qdict, &err);
> - if (error_is_set(&err)) {
> + if (err) {
> goto out;
> }
>
> netdev_add(opts, &err);
> - if (error_is_set(&err)) {
> + if (err) {
> qemu_opts_del(opts);
> }
>
> diff --git a/hw/pci/pci-hotplug-old.c b/hw/pci/pci-hotplug-old.c
> index 8dbc3c1..cf2caeb 100644
> --- a/hw/pci/pci-hotplug-old.c
> +++ b/hw/pci/pci-hotplug-old.c
> @@ -90,7 +90,7 @@ static PCIDevice *qemu_pci_hot_add_nic(Monitor *mon,
> qemu_opt_set(opts, "type", "nic");
>
> ret = net_client_init(opts, 0, &local_err);
> - if (error_is_set(&local_err)) {
> + if (local_err) {
> qerror_report_err(local_err);
> error_free(local_err);
> return NULL;
> @@ -322,7 +322,7 @@ static int pci_device_hot_remove(Monitor *mon, const char
> *pci_addr)
> }
>
> qdev_unplug(&d->qdev, &local_err);
> - if (error_is_set(&local_err)) {
> + if (local_err) {
> monitor_printf(mon, "%s\n", error_get_pretty(local_err));
> error_free(local_err);
> return -1;
> diff --git a/hw/usb/dev-network.c b/hw/usb/dev-network.c
> index 4c532b7..f0c2536 100644
> --- a/hw/usb/dev-network.c
> +++ b/hw/usb/dev-network.c
> @@ -1391,7 +1391,7 @@ static USBDevice *usb_net_init(USBBus *bus, const char
> *cmdline)
> qemu_opt_set(opts, "model", "usb");
>
> idx = net_client_init(opts, 0, &local_err);
> - if (error_is_set(&local_err)) {
> + if (local_err) {
> qerror_report_err(local_err);
> error_free(local_err);
> return NULL;
> diff --git a/net/net.c b/net/net.c
> index f8db85f..2587b80 100644
> --- a/net/net.c
> +++ b/net/net.c
> @@ -885,7 +885,7 @@ void net_host_device_add(Monitor *mon, const QDict *qdict)
> qemu_opt_set(opts, "type", device);
>
> net_client_init(opts, 0, &local_err);
> - if (error_is_set(&local_err)) {
> + if (local_err) {
> qerror_report_err(local_err);
> error_free(local_err);
> monitor_printf(mon, "adding host network device %s failed\n",
> device);
> @@ -921,17 +921,17 @@ int qmp_netdev_add(Monitor *mon, const QDict *qdict,
> QObject **ret)
> QemuOpts *opts;
>
> opts_list = qemu_find_opts_err("netdev", &local_err);
> - if (error_is_set(&local_err)) {
> + if (local_err) {
> goto exit_err;
> }
>
> opts = qemu_opts_from_qdict(opts_list, qdict, &local_err);
> - if (error_is_set(&local_err)) {
> + if (local_err) {
> goto exit_err;
> }
>
> netdev_add(opts, &local_err);
> - if (error_is_set(&local_err)) {
> + if (local_err) {
> qemu_opts_del(opts);
> goto exit_err;
> }
> @@ -1155,7 +1155,7 @@ static int net_init_client(QemuOpts *opts, void *dummy)
> Error *local_err = NULL;
>
> net_client_init(opts, 0, &local_err);
> - if (error_is_set(&local_err)) {
> + if (local_err) {
> qerror_report_err(local_err);
> error_free(local_err);
> return -1;
> @@ -1170,7 +1170,7 @@ static int net_init_netdev(QemuOpts *opts, void *dummy)
> int ret;
>
> ret = net_client_init(opts, 1, &local_err);
> - if (error_is_set(&local_err)) {
> + if (local_err) {
> qerror_report_err(local_err);
> error_free(local_err);
> return -1;
> diff --git a/qdev-monitor.c b/qdev-monitor.c
> index 1d3b68d..2d1ef8d 100644
> --- a/qdev-monitor.c
> +++ b/qdev-monitor.c
> @@ -656,7 +656,7 @@ int do_device_add(Monitor *mon, const QDict *qdict,
> QObject **ret_data)
> DeviceState *dev;
>
> opts = qemu_opts_from_qdict(qemu_find_opts("device"), qdict, &local_err);
> - if (error_is_set(&local_err)) {
> + if (local_err) {
> qerror_report_err(local_err);
> error_free(local_err);
> return -1;
> diff --git a/qemu-char.c b/qemu-char.c
> index 30c5a6a..d0b4ac5 100644
> --- a/qemu-char.c
> +++ b/qemu-char.c
> @@ -2725,7 +2725,7 @@ static CharDriverState *qemu_chr_open_socket(QemuOpts
> *opts)
>
> chr = qemu_chr_open_socket_fd(fd, do_nodelay, is_listen, is_telnet,
> is_waitconnect, &local_err);
> - if (error_is_set(&local_err)) {
> + if (local_err) {
> goto fail;
> }
> return chr;
> @@ -2938,7 +2938,7 @@ QemuOpts *qemu_chr_parse_compat(const char *label,
> const char *filename)
> Error *local_err = NULL;
>
> opts = qemu_opts_create(qemu_find_opts("chardev"), label, 1, &local_err);
> - if (error_is_set(&local_err)) {
> + if (local_err) {
> qerror_report_err(local_err);
> error_free(local_err);
> return NULL;
> @@ -3323,7 +3323,7 @@ CharDriverState *qemu_chr_new(const char *label, const
> char *filename, void (*in
> return NULL;
>
> chr = qemu_chr_new_from_opts(opts, init, &err);
> - if (error_is_set(&err)) {
> + if (err) {
> error_report("%s", error_get_pretty(err));
> error_free(err);
> }
> diff --git a/qemu-img.c b/qemu-img.c
> index c989850..0927b09 100644
> --- a/qemu-img.c
> +++ b/qemu-img.c
> @@ -419,7 +419,7 @@ static int img_create(int argc, char **argv)
>
> bdrv_img_create(filename, fmt, base_filename, base_fmt,
> options, img_size, BDRV_O_FLAGS, &local_err, quiet);
> - if (error_is_set(&local_err)) {
> + if (local_err) {
> error_report("%s: %s", filename, error_get_pretty(local_err));
> error_free(local_err);
> return 1;
> @@ -1289,7 +1289,7 @@ static int img_convert(int argc, char **argv)
>
> bdrv_snapshot_load_tmp_by_id_or_name(bs[0], snapshot_name,
> &local_err);
> }
> - if (error_is_set(&local_err)) {
> + if (local_err) {
> error_report("Failed to load snapshot: %s",
> error_get_pretty(local_err));
> error_free(local_err);
> @@ -1775,7 +1775,7 @@ static ImageInfoList *collect_image_info_list(const
> char *filename,
> }
>
> bdrv_query_image_info(bs, &info, &err);
> - if (error_is_set(&err)) {
> + if (err) {
> error_report("%s", error_get_pretty(err));
> error_free(err);
> goto err;
> @@ -2184,7 +2184,7 @@ static int img_snapshot(int argc, char **argv)
>
> case SNAPSHOT_DELETE:
> bdrv_snapshot_delete_by_id_or_name(bs, snapshot_name, &err);
> - if (error_is_set(&err)) {
> + if (err) {
> error_report("Could not delete snapshot '%s': (%s)",
> snapshot_name, error_get_pretty(err));
> error_free(err);
> diff --git a/qga/commands-posix.c b/qga/commands-posix.c
> index 8100bee..cae4171 100644
> --- a/qga/commands-posix.c
> +++ b/qga/commands-posix.c
> @@ -108,7 +108,7 @@ void qmp_guest_shutdown(bool has_mode, const char *mode,
> Error **err)
> }
>
> ga_wait_child(pid, &status, &local_err);
> - if (error_is_set(&local_err)) {
> + if (local_err) {
> error_propagate(err, local_err);
> return;
> }
> @@ -181,7 +181,7 @@ void qmp_guest_set_time(int64_t time_ns, Error **errp)
> }
>
> ga_wait_child(pid, &status, &local_err);
> - if (error_is_set(&local_err)) {
> + if (local_err) {
> error_propagate(errp, local_err);
> return;
> }
> @@ -669,7 +669,7 @@ static void execute_fsfreeze_hook(FsfreezeHookArg arg,
> Error **err)
> }
>
> ga_wait_child(pid, &status, &local_err);
> - if (error_is_set(&local_err)) {
> + if (local_err) {
> error_propagate(err, local_err);
> return;
> }
> @@ -713,14 +713,14 @@ int64_t qmp_guest_fsfreeze_freeze(Error **err)
> slog("guest-fsfreeze called");
>
> execute_fsfreeze_hook(FSFREEZE_HOOK_FREEZE, &local_err);
> - if (error_is_set(&local_err)) {
> + if (local_err) {
> error_propagate(err, local_err);
> return -1;
> }
>
> QTAILQ_INIT(&mounts);
> build_fs_mount_list(&mounts, &local_err);
> - if (error_is_set(&local_err)) {
> + if (local_err) {
> error_propagate(err, local_err);
> return -1;
> }
> @@ -780,7 +780,7 @@ int64_t qmp_guest_fsfreeze_thaw(Error **err)
>
> QTAILQ_INIT(&mounts);
> build_fs_mount_list(&mounts, &local_err);
> - if (error_is_set(&local_err)) {
> + if (local_err) {
> error_propagate(err, local_err);
> return 0;
> }
> @@ -861,7 +861,7 @@ void qmp_guest_fstrim(bool has_minimum, int64_t minimum,
> Error **err)
>
> QTAILQ_INIT(&mounts);
> build_fs_mount_list(&mounts, &local_err);
> - if (error_is_set(&local_err)) {
> + if (local_err) {
> error_propagate(err, local_err);
> return;
> }
> @@ -957,7 +957,7 @@ static void bios_supports_mode(const char *pmutils_bin,
> const char *pmutils_arg,
> }
>
> ga_wait_child(pid, &status, &local_err);
> - if (error_is_set(&local_err)) {
> + if (local_err) {
> error_propagate(err, local_err);
> goto out;
> }
> @@ -1034,7 +1034,7 @@ static void guest_suspend(const char *pmutils_bin,
> const char *sysfile_str,
> }
>
> ga_wait_child(pid, &status, &local_err);
> - if (error_is_set(&local_err)) {
> + if (local_err) {
> error_propagate(err, local_err);
> goto out;
> }
> diff --git a/qga/commands-win32.c b/qga/commands-win32.c
> index a6a0af2..50094dd 100644
> --- a/qga/commands-win32.c
> +++ b/qga/commands-win32.c
> @@ -197,7 +197,7 @@ int64_t qmp_guest_fsfreeze_freeze(Error **err)
>
> error:
> qmp_guest_fsfreeze_thaw(&local_err);
> - if (error_is_set(&local_err)) {
> + if (local_err) {
> g_debug("cleanup thaw: %s", error_get_pretty(local_err));
> error_free(local_err);
> }
> diff --git a/savevm.c b/savevm.c
> index a7dbe18..7329fc5 100644
> --- a/savevm.c
> +++ b/savevm.c
> @@ -880,7 +880,7 @@ static int del_existing_snapshots(Monitor *mon, const
> char *name)
> if (bdrv_can_snapshot(bs) &&
> bdrv_snapshot_find(bs, snapshot, name) >= 0) {
> bdrv_snapshot_delete_by_id_or_name(bs, name, &err);
> - if (error_is_set(&err)) {
> + if (err) {
> monitor_printf(mon,
> "Error while deleting snapshot on device
> '%s':"
> " %s\n",
> @@ -1115,7 +1115,7 @@ void do_delvm(Monitor *mon, const QDict *qdict)
> while ((bs1 = bdrv_next(bs1))) {
> if (bdrv_can_snapshot(bs1)) {
> bdrv_snapshot_delete_by_id_or_name(bs, name, &err);
> - if (error_is_set(&err)) {
> + if (err) {
> monitor_printf(mon,
> "Error while deleting snapshot on device
> '%s':"
> " %s\n",
> diff --git a/tests/test-qmp-input-strict.c b/tests/test-qmp-input-strict.c
> index 6f68963..38bdf5e 100644
> --- a/tests/test-qmp-input-strict.c
> +++ b/tests/test-qmp-input-strict.c
> @@ -92,7 +92,7 @@ static void test_validate_struct(TestInputVisitorData *data,
> v = validate_test_init(data, "{ 'integer': -42, 'boolean': true,
> 'string': 'foo' }");
>
> visit_type_TestStruct(v, &p, NULL, &errp);
> - g_assert(!error_is_set(&errp));
> + g_assert(!errp);
> g_free(p->string);
> g_free(p);
> }
> @@ -107,7 +107,7 @@ static void
> test_validate_struct_nested(TestInputVisitorData *data,
> v = validate_test_init(data, "{ 'string0': 'string0', 'dict1': {
> 'string1': 'string1', 'dict2': { 'userdef1': { 'integer': 42, 'string':
> 'string' }, 'string2': 'string2'}}}");
>
> visit_type_UserDefNested(v, &udp, NULL, &errp);
> - g_assert(!error_is_set(&errp));
> + g_assert(!errp);
> qapi_free_UserDefNested(udp);
> }
>
> @@ -121,7 +121,7 @@ static void test_validate_list(TestInputVisitorData *data,
> v = validate_test_init(data, "[ { 'string': 'string0', 'integer': 42 },
> { 'string': 'string1', 'integer': 43 }, { 'string': 'string2', 'integer': 44
> } ]");
>
> visit_type_UserDefOneList(v, &head, NULL, &errp);
> - g_assert(!error_is_set(&errp));
> + g_assert(!errp);
> qapi_free_UserDefOneList(head);
> }
>
> @@ -135,7 +135,7 @@ static void test_validate_union(TestInputVisitorData
> *data,
> v = validate_test_init(data, "{ 'type': 'b', 'data' : { 'integer': 42 }
> }");
>
> visit_type_UserDefUnion(v, &tmp, NULL, &errp);
> - g_assert(!error_is_set(&errp));
> + g_assert(!errp);
> qapi_free_UserDefUnion(tmp);
> }
>
> @@ -149,7 +149,7 @@ static void
> test_validate_fail_struct(TestInputVisitorData *data,
> v = validate_test_init(data, "{ 'integer': -42, 'boolean': true,
> 'string': 'foo', 'extra': 42 }");
>
> visit_type_TestStruct(v, &p, NULL, &errp);
> - g_assert(error_is_set(&errp));
> + g_assert(errp);
> if (p) {
> g_free(p->string);
> }
> @@ -166,7 +166,7 @@ static void
> test_validate_fail_struct_nested(TestInputVisitorData *data,
> v = validate_test_init(data, "{ 'string0': 'string0', 'dict1': {
> 'string1': 'string1', 'dict2': { 'userdef1': { 'integer': 42, 'string':
> 'string', 'extra': [42, 23, {'foo':'bar'}] }, 'string2': 'string2'}}}");
>
> visit_type_UserDefNested(v, &udp, NULL, &errp);
> - g_assert(error_is_set(&errp));
> + g_assert(errp);
> qapi_free_UserDefNested(udp);
> }
>
> @@ -180,7 +180,7 @@ static void test_validate_fail_list(TestInputVisitorData
> *data,
> v = validate_test_init(data, "[ { 'string': 'string0', 'integer': 42 },
> { 'string': 'string1', 'integer': 43 }, { 'string': 'string2', 'integer': 44,
> 'extra': 'ggg' } ]");
>
> visit_type_UserDefOneList(v, &head, NULL, &errp);
> - g_assert(error_is_set(&errp));
> + g_assert(errp);
> qapi_free_UserDefOneList(head);
> }
>
> @@ -194,7 +194,7 @@ static void test_validate_fail_union(TestInputVisitorData
> *data,
> v = validate_test_init(data, "{ 'type': 'b', 'data' : { 'integer': 42 },
> 'extra': 'yyy' }");
>
> visit_type_UserDefUnion(v, &tmp, NULL, &errp);
> - g_assert(error_is_set(&errp));
> + g_assert(errp);
> qapi_free_UserDefUnion(tmp);
> }
>
> diff --git a/tests/test-qmp-input-visitor.c b/tests/test-qmp-input-visitor.c
> index 1e1c6fa..6eb7dc5 100644
> --- a/tests/test-qmp-input-visitor.c
> +++ b/tests/test-qmp-input-visitor.c
> @@ -96,7 +96,7 @@ static void test_visitor_in_int(TestInputVisitorData *data,
> v = visitor_input_test_init(data, "%" PRId64, value);
>
> visit_type_int(v, &res, NULL, &errp);
> - g_assert(!error_is_set(&errp));
> + g_assert(!errp);
> g_assert_cmpint(res, ==, value);
> }
>
> @@ -114,7 +114,7 @@ static void
> test_visitor_in_int_overflow(TestInputVisitorData *data,
> v = visitor_input_test_init(data, "%f", DBL_MAX);
>
> visit_type_int(v, &res, NULL, &errp);
> - g_assert(error_is_set(&errp));
> + g_assert(errp);
> error_free(errp);
> }
>
> @@ -128,7 +128,7 @@ static void test_visitor_in_bool(TestInputVisitorData
> *data,
> v = visitor_input_test_init(data, "true");
>
> visit_type_bool(v, &res, NULL, &errp);
> - g_assert(!error_is_set(&errp));
> + g_assert(!errp);
> g_assert_cmpint(res, ==, true);
> }
>
> @@ -142,7 +142,7 @@ static void test_visitor_in_number(TestInputVisitorData
> *data,
> v = visitor_input_test_init(data, "%f", value);
>
> visit_type_number(v, &res, NULL, &errp);
> - g_assert(!error_is_set(&errp));
> + g_assert(!errp);
> g_assert_cmpfloat(res, ==, value);
> }
>
> @@ -156,7 +156,7 @@ static void test_visitor_in_string(TestInputVisitorData
> *data,
> v = visitor_input_test_init(data, "%s", value);
>
> visit_type_str(v, &res, NULL, &errp);
> - g_assert(!error_is_set(&errp));
> + g_assert(!errp);
> g_assert_cmpstr(res, ==, value);
>
> g_free(res);
> @@ -175,7 +175,7 @@ static void test_visitor_in_enum(TestInputVisitorData
> *data,
> v = visitor_input_test_init(data, "%s", EnumOne_lookup[i]);
>
> visit_type_EnumOne(v, &res, NULL, &errp);
> - g_assert(!error_is_set(&errp));
> + g_assert(!errp);
> g_assert_cmpint(i, ==, res);
>
> visitor_input_teardown(data, NULL);
> @@ -223,7 +223,7 @@ static void test_visitor_in_struct(TestInputVisitorData
> *data,
> v = visitor_input_test_init(data, "{ 'integer': -42, 'boolean': true,
> 'string': 'foo' }");
>
> visit_type_TestStruct(v, &p, NULL, &errp);
> - g_assert(!error_is_set(&errp));
> + g_assert(!errp);
> g_assert_cmpint(p->integer, ==, -42);
> g_assert(p->boolean == true);
> g_assert_cmpstr(p->string, ==, "foo");
> @@ -248,7 +248,7 @@ static void
> test_visitor_in_struct_nested(TestInputVisitorData *data,
> v = visitor_input_test_init(data, "{ 'string0': 'string0', 'dict1': {
> 'string1': 'string1', 'dict2': { 'userdef1': { 'integer': 42, 'string':
> 'string' }, 'string2': 'string2'}}}");
>
> visit_type_UserDefNested(v, &udp, NULL, &errp);
> - g_assert(!error_is_set(&errp));
> + g_assert(!errp);
>
> check_and_free_str(udp->string0, "string0");
> check_and_free_str(udp->dict1.string1, "string1");
> @@ -272,7 +272,7 @@ static void test_visitor_in_list(TestInputVisitorData
> *data,
> v = visitor_input_test_init(data, "[ { 'string': 'string0', 'integer':
> 42 }, { 'string': 'string1', 'integer': 43 }, { 'string': 'string2',
> 'integer': 44 } ]");
>
> visit_type_UserDefOneList(v, &head, NULL, &errp);
> - g_assert(!error_is_set(&errp));
> + g_assert(!errp);
> g_assert(head != NULL);
>
> for (i = 0, item = head; item; item = item->next, i++) {
> @@ -601,7 +601,7 @@ static void test_visitor_in_errors(TestInputVisitorData
> *data,
> v = visitor_input_test_init(data, "{ 'integer': false, 'boolean': 'foo',
> 'string': -42 }");
>
> visit_type_TestStruct(v, &p, NULL, &errp);
> - g_assert(error_is_set(&errp));
> + g_assert(errp);
> g_assert(p->string == NULL);
>
> error_free(errp);
> diff --git a/tests/test-qmp-output-visitor.c b/tests/test-qmp-output-visitor.c
> index e073d83..f31d168 100644
> --- a/tests/test-qmp-output-visitor.c
> +++ b/tests/test-qmp-output-visitor.c
> @@ -49,7 +49,7 @@ static void test_visitor_out_int(TestOutputVisitorData
> *data,
> QObject *obj;
>
> visit_type_int(data->ov, &value, NULL, &errp);
> - g_assert(error_is_set(&errp) == 0);
> + g_assert(!errp);
>
> obj = qmp_output_get_qobject(data->qov);
> g_assert(obj != NULL);
> @@ -67,7 +67,7 @@ static void test_visitor_out_bool(TestOutputVisitorData
> *data,
> QObject *obj;
>
> visit_type_bool(data->ov, &value, NULL, &errp);
> - g_assert(error_is_set(&errp) == 0);
> + g_assert(!errp);
>
> obj = qmp_output_get_qobject(data->qov);
> g_assert(obj != NULL);
> @@ -85,7 +85,7 @@ static void test_visitor_out_number(TestOutputVisitorData
> *data,
> QObject *obj;
>
> visit_type_number(data->ov, &value, NULL, &errp);
> - g_assert(error_is_set(&errp) == 0);
> + g_assert(!errp);
>
> obj = qmp_output_get_qobject(data->qov);
> g_assert(obj != NULL);
> @@ -103,7 +103,7 @@ static void test_visitor_out_string(TestOutputVisitorData
> *data,
> QObject *obj;
>
> visit_type_str(data->ov, &string, NULL, &errp);
> - g_assert(error_is_set(&errp) == 0);
> + g_assert(!errp);
>
> obj = qmp_output_get_qobject(data->qov);
> g_assert(obj != NULL);
> @@ -122,7 +122,7 @@ static void
> test_visitor_out_no_string(TestOutputVisitorData *data,
>
> /* A null string should return "" */
> visit_type_str(data->ov, &string, NULL, &errp);
> - g_assert(error_is_set(&errp) == 0);
> + g_assert(!errp);
>
> obj = qmp_output_get_qobject(data->qov);
> g_assert(obj != NULL);
> @@ -141,7 +141,7 @@ static void test_visitor_out_enum(TestOutputVisitorData
> *data,
>
> for (i = 0; i < ENUM_ONE_MAX; i++) {
> visit_type_EnumOne(data->ov, &i, "unused", &errp);
> - g_assert(!error_is_set(&errp));
> + g_assert(!errp);
>
> obj = qmp_output_get_qobject(data->qov);
> g_assert(obj != NULL);
> @@ -161,7 +161,7 @@ static void
> test_visitor_out_enum_errors(TestOutputVisitorData *data,
> for (i = 0; i < ARRAY_SIZE(bad_values) ; i++) {
> errp = NULL;
> visit_type_EnumOne(data->ov, &bad_values[i], "unused", &errp);
> - g_assert(error_is_set(&errp) == true);
> + g_assert(errp);
> error_free(errp);
> }
> }
> @@ -198,7 +198,7 @@ static void test_visitor_out_struct(TestOutputVisitorData
> *data,
> QDict *qdict;
>
> visit_type_TestStruct(data->ov, &p, NULL, &errp);
> - g_assert(!error_is_set(&errp));
> + g_assert(!errp);
>
> obj = qmp_output_get_qobject(data->qov);
> g_assert(obj != NULL);
> @@ -241,7 +241,7 @@ static void
> test_visitor_out_struct_nested(TestOutputVisitorData *data,
> ud2->dict1.dict3.string3 = g_strdup(strings[3]);
>
> visit_type_UserDefNested(data->ov, &ud2, "unused", &errp);
> - g_assert(!error_is_set(&errp));
> + g_assert(!errp);
>
> obj = qmp_output_get_qobject(data->qov);
> g_assert(obj != NULL);
> @@ -288,7 +288,7 @@ static void
> test_visitor_out_struct_errors(TestOutputVisitorData *data,
> u.has_enum1 = true;
> u.enum1 = bad_values[i];
> visit_type_UserDefOne(data->ov, &pu, "unused", &errp);
> - g_assert(error_is_set(&errp) == true);
> + g_assert(errp);
> error_free(errp);
> }
> }
> @@ -343,7 +343,7 @@ static void test_visitor_out_list(TestOutputVisitorData
> *data,
> }
>
> visit_type_TestStructList(data->ov, &head, NULL, &errp);
> - g_assert(!error_is_set(&errp));
> + g_assert(!errp);
>
> obj = qmp_output_get_qobject(data->qov);
> g_assert(obj != NULL);
> diff --git a/tests/test-string-input-visitor.c
> b/tests/test-string-input-visitor.c
> index 5989f81..d406263 100644
> --- a/tests/test-string-input-visitor.c
> +++ b/tests/test-string-input-visitor.c
> @@ -60,7 +60,7 @@ static void test_visitor_in_int(TestInputVisitorData *data,
> v = visitor_input_test_init(data, "-42");
>
> visit_type_int(v, &res, NULL, &errp);
> - g_assert(!error_is_set(&errp));
> + g_assert(!errp);
> g_assert_cmpint(res, ==, value);
> }
>
> @@ -74,42 +74,42 @@ static void test_visitor_in_bool(TestInputVisitorData
> *data,
> v = visitor_input_test_init(data, "true");
>
> visit_type_bool(v, &res, NULL, &errp);
> - g_assert(!error_is_set(&errp));
> + g_assert(!errp);
> g_assert_cmpint(res, ==, true);
> visitor_input_teardown(data, unused);
>
> v = visitor_input_test_init(data, "yes");
>
> visit_type_bool(v, &res, NULL, &errp);
> - g_assert(!error_is_set(&errp));
> + g_assert(!errp);
> g_assert_cmpint(res, ==, true);
> visitor_input_teardown(data, unused);
>
> v = visitor_input_test_init(data, "on");
>
> visit_type_bool(v, &res, NULL, &errp);
> - g_assert(!error_is_set(&errp));
> + g_assert(!errp);
> g_assert_cmpint(res, ==, true);
> visitor_input_teardown(data, unused);
>
> v = visitor_input_test_init(data, "false");
>
> visit_type_bool(v, &res, NULL, &errp);
> - g_assert(!error_is_set(&errp));
> + g_assert(!errp);
> g_assert_cmpint(res, ==, false);
> visitor_input_teardown(data, unused);
>
> v = visitor_input_test_init(data, "no");
>
> visit_type_bool(v, &res, NULL, &errp);
> - g_assert(!error_is_set(&errp));
> + g_assert(!errp);
> g_assert_cmpint(res, ==, false);
> visitor_input_teardown(data, unused);
>
> v = visitor_input_test_init(data, "off");
>
> visit_type_bool(v, &res, NULL, &errp);
> - g_assert(!error_is_set(&errp));
> + g_assert(!errp);
> g_assert_cmpint(res, ==, false);
> }
>
> @@ -123,7 +123,7 @@ static void test_visitor_in_number(TestInputVisitorData
> *data,
> v = visitor_input_test_init(data, "3.14");
>
> visit_type_number(v, &res, NULL, &errp);
> - g_assert(!error_is_set(&errp));
> + g_assert(!errp);
> g_assert_cmpfloat(res, ==, value);
> }
>
> @@ -137,7 +137,7 @@ static void test_visitor_in_string(TestInputVisitorData
> *data,
> v = visitor_input_test_init(data, value);
>
> visit_type_str(v, &res, NULL, &errp);
> - g_assert(!error_is_set(&errp));
> + g_assert(!errp);
> g_assert_cmpstr(res, ==, value);
>
> g_free(res);
> @@ -156,7 +156,7 @@ static void test_visitor_in_enum(TestInputVisitorData
> *data,
> v = visitor_input_test_init(data, EnumOne_lookup[i]);
>
> visit_type_EnumOne(v, &res, NULL, &errp);
> - g_assert(!error_is_set(&errp));
> + g_assert(!errp);
> g_assert_cmpint(i, ==, res);
>
> visitor_input_teardown(data, NULL);
> diff --git a/tests/test-string-output-visitor.c
> b/tests/test-string-output-visitor.c
> index 79d815f..52231cd 100644
> --- a/tests/test-string-output-visitor.c
> +++ b/tests/test-string-output-visitor.c
> @@ -49,7 +49,7 @@ static void test_visitor_out_int(TestOutputVisitorData
> *data,
> char *str;
>
> visit_type_int(data->ov, &value, NULL, &errp);
> - g_assert(error_is_set(&errp) == 0);
> + g_assert(!errp);
>
> str = string_output_get_string(data->sov);
> g_assert(str != NULL);
> @@ -65,7 +65,7 @@ static void test_visitor_out_bool(TestOutputVisitorData
> *data,
> char *str;
>
> visit_type_bool(data->ov, &value, NULL, &errp);
> - g_assert(error_is_set(&errp) == 0);
> + g_assert(!errp);
>
> str = string_output_get_string(data->sov);
> g_assert(str != NULL);
> @@ -81,7 +81,7 @@ static void test_visitor_out_number(TestOutputVisitorData
> *data,
> char *str;
>
> visit_type_number(data->ov, &value, NULL, &errp);
> - g_assert(error_is_set(&errp) == 0);
> + g_assert(!errp);
>
> str = string_output_get_string(data->sov);
> g_assert(str != NULL);
> @@ -97,7 +97,7 @@ static void test_visitor_out_string(TestOutputVisitorData
> *data,
> char *str;
>
> visit_type_str(data->ov, &string, NULL, &errp);
> - g_assert(error_is_set(&errp) == 0);
> + g_assert(!errp);
>
> str = string_output_get_string(data->sov);
> g_assert(str != NULL);
> @@ -114,7 +114,7 @@ static void
> test_visitor_out_no_string(TestOutputVisitorData *data,
>
> /* A null string should return "" */
> visit_type_str(data->ov, &string, NULL, &errp);
> - g_assert(error_is_set(&errp) == 0);
> + g_assert(!errp);
>
> str = string_output_get_string(data->sov);
> g_assert(str != NULL);
> @@ -131,7 +131,7 @@ static void test_visitor_out_enum(TestOutputVisitorData
> *data,
>
> for (i = 0; i < ENUM_ONE_MAX; i++) {
> visit_type_EnumOne(data->ov, &i, "unused", &errp);
> - g_assert(!error_is_set(&errp));
> + g_assert(!errp);
>
> str = string_output_get_string(data->sov);
> g_assert(str != NULL);
> @@ -149,7 +149,7 @@ static void
> test_visitor_out_enum_errors(TestOutputVisitorData *data,
> for (i = 0; i < ARRAY_SIZE(bad_values) ; i++) {
> errp = NULL;
> visit_type_EnumOne(data->ov, &bad_values[i], "unused", &errp);
> - g_assert(error_is_set(&errp) == true);
> + g_assert(errp);
> error_free(errp);
> }
> }
> diff --git a/tpm.c b/tpm.c
> index d68d69f..c371023 100644
> --- a/tpm.c
> +++ b/tpm.c
> @@ -161,7 +161,7 @@ static int configure_tpm(QemuOpts *opts)
>
> /* validate backend specific opts */
> qemu_opts_validate(opts, be->opts, &local_err);
> - if (error_is_set(&local_err)) {
> + if (local_err) {
> qerror_report_err(local_err);
> error_free(local_err);
> return 1;
> diff --git a/util/qemu-config.c b/util/qemu-config.c
> index 9298f55..797df71 100644
> --- a/util/qemu-config.c
> +++ b/util/qemu-config.c
> @@ -31,7 +31,7 @@ QemuOptsList *qemu_find_opts(const char *group)
> Error *local_err = NULL;
>
> ret = find_list(vm_config_groups, group, &local_err);
> - if (error_is_set(&local_err)) {
> + if (local_err) {
> error_report("%s", error_get_pretty(local_err));
> error_free(local_err);
> }
> @@ -295,7 +295,7 @@ int qemu_config_parse(FILE *fp, QemuOptsList **lists,
> const char *fname)
> if (sscanf(line, "[%63s \"%63[^\"]\"]", group, id) == 2) {
> /* group with id */
> list = find_list(lists, group, &local_err);
> - if (error_is_set(&local_err)) {
> + if (local_err) {
> error_report("%s", error_get_pretty(local_err));
> error_free(local_err);
> goto out;
> @@ -306,7 +306,7 @@ int qemu_config_parse(FILE *fp, QemuOptsList **lists,
> const char *fname)
> if (sscanf(line, "[%63[^]]]", group) == 1) {
> /* group without id */
> list = find_list(lists, group, &local_err);
> - if (error_is_set(&local_err)) {
> + if (local_err) {
> error_report("%s", error_get_pretty(local_err));
> error_free(local_err);
> goto out;
> @@ -376,13 +376,13 @@ static void config_parse_qdict_section(QDict *options,
> QemuOptsList *opts,
> }
>
> subopts = qemu_opts_create(opts, NULL, 0, &local_err);
> - if (error_is_set(&local_err)) {
> + if (local_err) {
> error_propagate(errp, local_err);
> goto out;
> }
>
> qemu_opts_absorb_qdict(subopts, subqdict, &local_err);
> - if (error_is_set(&local_err)) {
> + if (local_err) {
> error_propagate(errp, local_err);
> goto out;
> }
> @@ -416,13 +416,13 @@ static void config_parse_qdict_section(QDict *options,
> QemuOptsList *opts,
> opt_name = g_strdup_printf("%s.%u", opts->name, i++);
> subopts = qemu_opts_create(opts, opt_name, 1, &local_err);
> g_free(opt_name);
> - if (error_is_set(&local_err)) {
> + if (local_err) {
> error_propagate(errp, local_err);
> goto out;
> }
>
> qemu_opts_absorb_qdict(subopts, section, &local_err);
> - if (error_is_set(&local_err)) {
> + if (local_err) {
> error_propagate(errp, local_err);
> qemu_opts_del(subopts);
> goto out;
> @@ -450,7 +450,7 @@ void qemu_config_parse_qdict(QDict *options, QemuOptsList
> **lists,
>
> for (i = 0; lists[i]; i++) {
> config_parse_qdict_section(options, lists[i], &local_err);
> - if (error_is_set(&local_err)) {
> + if (local_err) {
> error_propagate(errp, local_err);
> return;
> }
> diff --git a/util/qemu-option.c b/util/qemu-option.c
> index 668e5d9..fd76cd2 100644
> --- a/util/qemu-option.c
> +++ b/util/qemu-option.c
> @@ -246,7 +246,7 @@ int set_option_parameter(QEMUOptionParameter *list, const
> char *name,
> switch (list->type) {
> case OPT_FLAG:
> parse_option_bool(name, value, &flag, &local_err);
> - if (!error_is_set(&local_err)) {
> + if (!local_err) {
> list->value.n = flag;
> }
> break;
> @@ -269,7 +269,7 @@ int set_option_parameter(QEMUOptionParameter *list, const
> char *name,
> return -1;
> }
>
> - if (error_is_set(&local_err)) {
> + if (local_err) {
> qerror_report_err(local_err);
> error_free(local_err);
> return -1;
> @@ -640,7 +640,7 @@ static void opt_set(QemuOpts *opts, const char *name,
> const char *value,
> opt->desc = desc;
> opt->str = g_strdup(value);
> qemu_opt_parse(opt, &local_err);
> - if (error_is_set(&local_err)) {
> + if (local_err) {
> error_propagate(errp, local_err);
> qemu_opt_del(opt);
> }
> @@ -651,7 +651,7 @@ int qemu_opt_set(QemuOpts *opts, const char *name, const
> char *value)
> Error *local_err = NULL;
>
> opt_set(opts, name, value, false, &local_err);
> - if (error_is_set(&local_err)) {
> + if (local_err) {
> qerror_report_err(local_err);
> error_free(local_err);
> return -1;
> @@ -812,7 +812,7 @@ int qemu_opts_set(QemuOptsList *list, const char *id,
> Error *local_err = NULL;
>
> opts = qemu_opts_create(list, id, 1, &local_err);
> - if (error_is_set(&local_err)) {
> + if (local_err) {
> qerror_report_err(local_err);
> error_free(local_err);
> return -1;
> @@ -897,7 +897,7 @@ static int opts_do_parse(QemuOpts *opts, const char
> *params,
> if (strcmp(option, "id") != 0) {
> /* store and parse */
> opt_set(opts, option, value, prepend, &local_err);
> - if (error_is_set(&local_err)) {
> + if (local_err) {
> qerror_report_err(local_err);
> error_free(local_err);
> return -1;
> @@ -945,7 +945,7 @@ static QemuOpts *opts_parse(QemuOptsList *list, const
> char *params,
> assert(!defaults || list->merge_lists);
> opts = qemu_opts_create(list, id, !defaults, &local_err);
> if (opts == NULL) {
> - if (error_is_set(&local_err)) {
> + if (local_err) {
> qerror_report_err(local_err);
> error_free(local_err);
> }
> @@ -1034,7 +1034,7 @@ QemuOpts *qemu_opts_from_qdict(QemuOptsList *list,
> const QDict *qdict,
>
> opts = qemu_opts_create(list, qdict_get_try_str(qdict, "id"), 1,
> &local_err);
> - if (error_is_set(&local_err)) {
> + if (local_err) {
> error_propagate(errp, local_err);
> return NULL;
> }
> @@ -1044,7 +1044,7 @@ QemuOpts *qemu_opts_from_qdict(QemuOptsList *list,
> const QDict *qdict,
> state.errp = &local_err;
> state.opts = opts;
> qdict_iter(qdict, qemu_opts_from_qdict_1, &state);
> - if (error_is_set(&local_err)) {
> + if (local_err) {
> error_propagate(errp, local_err);
> qemu_opts_del(opts);
> return NULL;
> @@ -1075,7 +1075,7 @@ void qemu_opts_absorb_qdict(QemuOpts *opts, QDict
> *qdict, Error **errp)
>
> if (find_desc_by_name(opts->list->desc, entry->key)) {
> qemu_opts_from_qdict_1(entry->key, entry->value, &state);
> - if (error_is_set(&local_err)) {
> + if (local_err) {
> error_propagate(errp, local_err);
> return;
> } else {
> @@ -1129,7 +1129,7 @@ void qemu_opts_validate(QemuOpts *opts, const
> QemuOptDesc *desc, Error **errp)
> }
>
> qemu_opt_parse(opt, &local_err);
> - if (error_is_set(&local_err)) {
> + if (local_err) {
> error_propagate(errp, local_err);
> return;
> }
> diff --git a/vl.c b/vl.c
> index 7f4fe0d..8dbc8a5 100644
> --- a/vl.c
> +++ b/vl.c
> @@ -2320,7 +2320,7 @@ static int chardev_init_func(QemuOpts *opts, void
> *opaque)
> Error *local_err = NULL;
>
> qemu_chr_new_from_opts(opts, NULL, &local_err);
> - if (error_is_set(&local_err)) {
> + if (local_err) {
> error_report("%s", error_get_pretty(local_err));
> error_free(local_err);
> return -1;
- Re: [Qemu-devel] [PATCH] Use error_is_set() only when necessary,
Luiz Capitulino <=