On 04/05/14 01:49, Eric Blake wrote:
I almost wrote a hash value free function that just called
VIR_FREE, then realized I couldn't be the first person to
do that. Sure enough, it was worth factoring into a common
helper routine.
Furthermore, in a few places we were passing raw free() as
the cleanup function; whereas going through VIR_FREE() ensures
that any (temporary) tracing or other memory stress testing
that we add to viralloc.c will not be bypassed.
* src/util/virhash.h (virHashValueFree): New function.
* src/util/virhash.c (virHashValueFree): Implement it.
* src/util/virobject.h (virObjectFreeHashData): New function.
* src/libvirt_private.syms (virhash.h, virobject.h): Export them.
* src/nwfilter/nwfilter_learnipaddr.c (virNWFilterLearnInit): Use
common function.
* src/qemu/qemu_capabilities.c (virQEMUCapsCacheNew): Likewise.
* src/qemu/qemu_command.c (qemuDomainCCWAddressSetCreate):
Likewise.
* src/qemu/qemu_monitor.c (qemuMonitorGetBlockInfo): Likewise.
* src/qemu/qemu_process.c (qemuProcessWaitForMonitor): Likewise.
* src/util/virclosecallbacks.c (virCloseCallbacksNew): Likewise.
* src/util/virkeyfile.c (virKeyFileParseGroup): Likewise.
* tests/qemumonitorjsontest.c
(testQemuMonitorJSONqemuMonitorJSONGetBlockInfo): Likewise.
Signed-off-by: Eric Blake <eblake(a)redhat.com>
---
It turns out I may end up not using the common helper in my
code after all, but the cleanup is still worth posting.
src/libvirt_private.syms | 2 ++
src/nwfilter/nwfilter_learnipaddr.c | 9 +--------
src/qemu/qemu_capabilities.c | 9 +--------
src/qemu/qemu_command.c | 8 +-------
src/qemu/qemu_monitor.c | 2 +-
src/qemu/qemu_process.c | 6 +-----
src/util/virclosecallbacks.c | 11 ++---------
src/util/virhash.c | 9 ++++++++-
src/util/virhash.h | 5 ++++-
src/util/virkeyfile.c | 9 ++-------
src/util/virobject.c | 17 ++++++++++++++++-
src/util/virobject.h | 3 ++-
tests/qemumonitorjsontest.c | 6 +++---
13 files changed, 44 insertions(+), 52 deletions(-)
ACK,
Peter