Eric Blake <ebl...@redhat.com> writes:

> No backend was setting an error when ending the visit of a list
> or implicit struct.

That's a lie: qmp_input_end_list() does.  But it shouldn't, as you
explain below.  Rephrase the commit message?

>                      Make the callers a bit easier to follow by
> making this a part of the contract, and removing the errp
> argument - callers can then unconditionally end an object as
> part of cleanup without having to think about whether a second
> error is dominated by a first, because there is no second error.
>
> The only addition of &error_abort in this patch, in the function
> qmp_input_end_list(), will never trigger unless a programming
> bug creates a push(struct)/pop(list) or push(list)/pop(struct)
> mismatch.
>
> A later patch will then tackle the larger task of splitting
> visit_end_struct(), which can indeed set an error (and that
> cleanup will also have the side-effect of removing the use of
> error_abort added here).
>
> Signed-off-by: Eric Blake <ebl...@redhat.com>
> Reviewed-by: Marc-André Lureau <marcandre.lur...@redhat.com>

Patch looks good.  I like the simplification.

Reply via email to