On 12/28/2013 11:11 AM, Eric Blake wrote:
Having one API call into another is generally not good; among
other issues, it gives confusing logs, and is not quite as
efficient.
This fixes several instances, but not all: we still have instances
in both libvirt.c and in backend hypervisors (lxc and qemu) calling
the public virTypedParamsGetString and friends, which dispatch
errors immediately. I'm not sure if it is worth trying to clean
that up in a separate patch (such a cleanup may be easiest by
separating the public function into a wrapper around the internal,
then tweaking internal.h so that internal users directly use the
internal function).
* src/libvirt.c (virDomainGetUUIDString, virNetworkGetUUIDString)
(virStoragePoolGetUUIDString, virSecretGetUUIDString)
(virNWFilterGetUUIDString): Avoid nested public API call.
* src/util/virtypedparam.c (virTypedParamsReplaceString): Don't
dispatch errors here.
(virTypedParamsGet): No need to reset errors.
Signed-off-by: Eric Blake <eblake(a)redhat.com>
---
src/libvirt.c | 31 +++++--------------------------
src/util/virtypedparam.c | 14 +++++++++-----
2 files changed, 14 insertions(+), 31 deletions(-)
ACK
Although I do note that virTypedParamsGetBoolean() has a slightly
different call flow than other similar functions...
That is usually it's
virResetLastError()
virTypedParamsGet()
VIR_TYPED_PARAM_CHECK_TYPE()
but, GetBoolean swaps ResetLast and TypedParamsGet()
Since this is a cleanup of sorts - just thought it may be useful to be
consistent.
John