On 12/17/2015 09:49 AM, Markus Armbruster wrote: > Instead of simply propagating an error verbatim, we sometimes want to > add to its message, like this: > > frobnicate(arg, &err); > error_setg(errp, "Can't frobnicate %s: %s", > arg, error_get_pretty(err));
Did you intend to have literal TABs in the commit message?
> error_free(err);
>
> This is suboptimal, because it loses err's hint (if any). Moreover,
> when errp is &error_abort or is subsequently propagated to
> &error_abort, the abort message points to the place where we last
> added to the error, not to the place where it originated.
>
> To avoid these issues, provide means to add to an error's message in
> place:
>
> frobnicate(arg, errp);
> error_prepend(errp, "Can't frobnicate %s: ", arg);
>
> Likewise, reporting an error like
>
> frobnicate(arg, &err);
> error_report("Can't frobnicate %s: %s", arg, error_get_pretty(err));
>
> can lose err's hint. To avoid:
>
> error_reportf_err(err, "Can't frobnicate %s: ", arg);
>
> The next commits will put these functions to use.
>
> Signed-off-by: Markus Armbruster <[email protected]>
> ---
> include/qapi/error.h | 31 +++++++++++++++++++++++++++++--
> util/error.c | 33 +++++++++++++++++++++++++++++++++
> 2 files changed, 62 insertions(+), 2 deletions(-)
>
Reviewed-by: Eric Blake <[email protected]>
--
Eric Blake eblake redhat com +1-919-301-3266
Libvirt virtualization library http://libvirt.org
signature.asc
Description: OpenPGP digital signature
