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 <arm...@redhat.com> > --- > include/qapi/error.h | 31 +++++++++++++++++++++++++++++-- > util/error.c | 33 +++++++++++++++++++++++++++++++++ > 2 files changed, 62 insertions(+), 2 deletions(-) > Reviewed-by: Eric Blake <ebl...@redhat.com> -- Eric Blake eblake redhat com +1-919-301-3266 Libvirt virtualization library http://libvirt.org
signature.asc
Description: OpenPGP digital signature