On Tue, Mar 10, 2015 at 17:45:08 +0100, Michal Privoznik wrote:
So far it's just a structure which happens to have 'Obj'
in its
name, but otherwise it not related to virObject at all. No
reference counting, not virObjectLock(), nothing.
Signed-off-by: Michal Privoznik <mprivozn(a)redhat.com>
---
cfg.mk | 2 -
src/conf/network_conf.c | 110 ++++++++++++++++++++------------------
src/conf/network_conf.h | 8 ++-
src/libvirt_private.syms | 4 +-
src/network/bridge_driver.c | 56 +++++++++----------
src/parallels/parallels_network.c | 16 +++---
src/test/test_driver.c | 32 +++++------
tests/networkxml2conftest.c | 4 +-
tests/objectlocking.ml | 2 -
9 files changed, 116 insertions(+), 118 deletions(-)
diff --git a/cfg.mk b/cfg.mk
index 07a794a..6885f9e 100644
--- a/cfg.mk
+++ b/cfg.mk
@@ -160,7 +160,6 @@ useless_free_options = \
--name=virNWFilterRuleDefFree \
--name=virNWFilterRuleInstFree \
--name=virNetworkDefFree \
- --name=virNetworkObjFree \
--name=virNodeDeviceDefFree \
--name=virNodeDeviceObjFree \
--name=virObjectUnref \
@@ -249,7 +248,6 @@ useless_free_options = \
# y virNetworkDefFree
# n virNetworkFree (returns int)
# n virNetworkFreeName (returns int)
-# y virNetworkObjFree
# n virNodeDevCapsDefFree FIXME
# y virNodeDeviceDefFree
# n virNodeDeviceFree (returns int)
diff --git a/src/conf/network_conf.c b/src/conf/network_conf.c
index ae29c47..609990c 100644
--- a/src/conf/network_conf.c
+++ b/src/conf/network_conf.c
@@ -79,11 +79,19 @@ VIR_ENUM_IMPL(virNetworkForwardDriverName,
VIR_ENUM_IMPL(virNetworkTaint, VIR_NETWORK_TAINT_LAST,
"hook-script");
+static virClassPtr virNetworkObjClass;
static virClassPtr virNetworkObjListClass;
+static void virNetworkObjDispose(void *obj);
static void virNetworkObjListDispose(void *obj);
static int virNetworkObjOnceInit(void)
{
+ if (!(virNetworkObjClass = virClassNew(virClassForObjectLockable(),
+ "virNetworkObj",
+ sizeof(virNetworkObj),
+ virNetworkObjDispose)))
+ return -1;
+
if (!(virNetworkObjListClass = virClassNew(virClassForObject(),
"virNetworkObjList",
sizeof(virNetworkObjList),
@@ -99,7 +107,33 @@ static void
virNetworkObjListDataFree(void *payload, const void *name ATTRIBUTE_UNUSED)
This function can now be replaced with virObjectFreeHashData.
{
virNetworkObjPtr obj = payload;
- virNetworkObjFree(obj);
+ virObjectUnref(obj);
+}
Since I've already reviewed this previously and the conversion to
virHash is ok here.
ACK if you use the existing free helper.
Peter