Glib provides a hash table implementation called GHashTable.
In this part of the series we'll refactor two instances of code which
use non-string keys for hashtable to use GHashTable directly which
simplifies the code (glib provides int hashing functions).
Since GHashTable is not a direct replacement for virHashTable without
code modification (glib's functions don't accept NULL hash table, ours
do) the next step will be to use virHashTable as a shim to provide NULL
compatibility and adapt to our slightly different style of iterators.
For this step we modify the variable type for the key to be 'char *' as
there's no other option left and remove various internals which won't be
compatible with GHashTable.
Second part (WIP, [1]) will then rewrite virHashTable internals to use
GHashTable, which will be used as an intermediate step before removal
which requires audit of all callers.
[1]:
https://gitlab.com/pipo.sk/libvirt/-/commits/glib-hash-part2
- needs auditing of all callers of virHashForeach to ensure that they
don't modify the hash table itself from the callback
Peter Krempa (15):
virCgroupKillRecursive: Return -1 on failure condition
util: virhash: Remove virHashTableSize
util: cgroup: Use GHashTable instead of virHashTable
virCgroupKillRecursive: Refactor cleanup
conf: domain_addr: Refactor hash usage in zpci reservation code
virHashAtomicNew: Remove 'size' argument
conf: nwfilter: Replace 'virNWFilterHashTableCreate' with 'virHashNew'
tests: hash: Prepare for replacement of virHashCreate
qemuDomainObjPrivateAlloc: Use virHashNew instead of virHashCreate
Replace all instances of 'virHashCreate' with 'virHashNew'
util: hash: Remove virHashValueFree
util: hash: Remove virHashCreateFull
util: hash: Change type of hash table name/key to 'char'
util: virhash: Remove key handling callbacks
virHashRemoveAll: Don't return number of removed items
src/conf/domain_addr.c | 125 +++--------
src/conf/domain_addr.h | 4 +-
src/conf/domain_conf.c | 4 +-
src/conf/domain_nwfilter.c | 2 +-
src/conf/nwfilter_ipaddrmap.c | 2 +-
src/conf/nwfilter_params.c | 14 +-
src/conf/nwfilter_params.h | 2 +-
src/conf/virchrdev.c | 4 +-
src/conf/virdomainmomentobjlist.c | 8 +-
src/conf/virdomainobjlist.c | 16 +-
src/conf/virinterfaceobj.c | 12 +-
src/conf/virnetworkobj.c | 21 +-
src/conf/virnodedeviceobj.c | 20 +-
src/conf/virnwfilterbindingdef.c | 2 +-
src/conf/virnwfilterbindingobjlist.c | 6 +-
src/conf/virsecretobj.c | 10 +-
src/conf/virstorageobj.c | 32 +--
src/hyperv/hyperv_wmi.c | 2 +-
src/hypervisor/virclosecallbacks.c | 4 +-
src/libvirt_private.syms | 5 +-
src/libxl/libxl_logger.c | 2 +-
src/locking/lock_daemon.c | 10 +-
src/nwfilter/nwfilter_dhcpsnoop.c | 12 +-
src/nwfilter/nwfilter_ebiptables_driver.c | 4 +-
src/nwfilter/nwfilter_gentech_driver.c | 14 +-
src/nwfilter/nwfilter_learnipaddr.c | 4 +-
src/qemu/qemu_block.c | 6 +-
src/qemu/qemu_blockjob.c | 2 +-
src/qemu/qemu_capabilities.c | 6 +-
src/qemu/qemu_checkpoint.c | 2 +-
src/qemu/qemu_domain.c | 8 +-
src/qemu/qemu_domain.h | 2 +-
src/qemu/qemu_driver.c | 2 +-
src/qemu/qemu_interop_config.c | 2 +-
src/qemu/qemu_migration.c | 2 +-
src/qemu/qemu_migration_cookie.c | 2 +-
src/qemu/qemu_monitor.c | 10 +-
src/qemu/qemu_monitor_json.c | 2 +-
src/qemu/qemu_process.c | 2 +-
src/qemu/qemu_qapi.c | 2 +-
src/qemu/qemu_snapshot.c | 4 +-
src/rpc/virnetdaemon.c | 16 +-
src/security/security_selinux.c | 4 +-
src/test/test_driver.c | 6 +-
src/util/vircgroup.c | 76 ++-----
src/util/vircgroupbackend.h | 3 +-
src/util/vircgrouppriv.h | 2 +-
src/util/vircgroupv1.c | 2 +-
src/util/vircgroupv2.c | 2 +-
src/util/virfilecache.c | 4 +-
src/util/virhash.c | 201 +++---------------
src/util/virhash.h | 94 ++------
src/util/viriptables.c | 4 +-
src/util/virlockspace.c | 8 +-
src/util/virmacmap.c | 6 +-
src/util/virstoragefile.c | 4 +-
src/util/virsystemd.c | 2 +-
tests/nwfilterxml2firewalltest.c | 6 +-
tests/qemumonitorjsontest.c | 12 +-
tests/qemusecuritymock.c | 12 +-
.../blockjob-blockdev-in.xml | 110 +++++-----
tests/testutilsqemu.c | 2 +-
tests/virhashtest.c | 52 ++---
63 files changed, 340 insertions(+), 683 deletions(-)
--
2.26.2