
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@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