[libvirt] [PATCH v3 02/15] network_conf: Make virNetworkObj actually virObject
Peter Krempa
pkrempa at redhat.com
Wed Mar 11 08:51:32 UTC 2015
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 at 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
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 819 bytes
Desc: Digital signature
URL: <http://listman.redhat.com/archives/libvir-list/attachments/20150311/bf8d4a13/attachment-0001.sig>
More information about the libvir-list
mailing list