Message ID | 20221104160712.3005652-27-armbru@redhat.com |
---|---|
State | New |
Headers | show |
Series | qapi: Elide redundant has_FOO in generated C | expand |
On 4/11/22 17:07, Markus Armbruster wrote: > The has_FOO for pointer-valued FOO are redundant, except for arrays. > They are also a nuisance to work with. Recent commit "qapi: Start to > elide redundant has_FOO in generated C" provided the means to elide > them step by step. This is the step for qapi/transaction.json. > > Said commit explains the transformation in more detail. The invariant > violations mentioned there do not occur here. > > In qmp_transaction(), we can't just drop parameter @has_props, since > it's used to track whether @props needs to be freed. Replace it by a > local variable. > > Cc: Kevin Wolf <kwolf@redhat.com> > Cc: Hanna Reitz <hreitz@redhat.com> > Cc: qemu-block@nongnu.org > Signed-off-by: Markus Armbruster <armbru@redhat.com> > --- > blockdev.c | 4 ++-- > scripts/qapi/schema.py | 1 - > 2 files changed, 2 insertions(+), 3 deletions(-) Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org>
diff --git a/blockdev.c b/blockdev.c index 59753400e9..75eef8535e 100644 --- a/blockdev.c +++ b/blockdev.c @@ -1048,7 +1048,7 @@ static void blockdev_do_action(TransactionAction *action, Error **errp) list.value = action; list.next = NULL; - qmp_transaction(&list, false, NULL, errp); + qmp_transaction(&list, NULL, errp); } void qmp_blockdev_snapshot_sync(const char *device, const char *node_name, @@ -2289,11 +2289,11 @@ static TransactionProperties *get_transaction_properties( * Always run under BQL. */ void qmp_transaction(TransactionActionList *dev_list, - bool has_props, struct TransactionProperties *props, Error **errp) { TransactionActionList *dev_entry = dev_list; + bool has_props = !!props; JobTxn *block_job_txn = NULL; BlkActionState *state, *next; Error *local_err = NULL; diff --git a/scripts/qapi/schema.py b/scripts/qapi/schema.py index f0726af876..3673296ad8 100644 --- a/scripts/qapi/schema.py +++ b/scripts/qapi/schema.py @@ -759,7 +759,6 @@ def need_has(self): assert self.type # Temporary hack to support dropping the has_FOO in reviewable chunks opt_out = [ - 'qapi/transaction.json', 'qapi/ui.json', 'qapi/virtio.json', 'qga/qapi-schema.json']
The has_FOO for pointer-valued FOO are redundant, except for arrays. They are also a nuisance to work with. Recent commit "qapi: Start to elide redundant has_FOO in generated C" provided the means to elide them step by step. This is the step for qapi/transaction.json. Said commit explains the transformation in more detail. The invariant violations mentioned there do not occur here. In qmp_transaction(), we can't just drop parameter @has_props, since it's used to track whether @props needs to be freed. Replace it by a local variable. Cc: Kevin Wolf <kwolf@redhat.com> Cc: Hanna Reitz <hreitz@redhat.com> Cc: qemu-block@nongnu.org Signed-off-by: Markus Armbruster <armbru@redhat.com> --- blockdev.c | 4 ++-- scripts/qapi/schema.py | 1 - 2 files changed, 2 insertions(+), 3 deletions(-)