[libvirt] [PATCH v3 09/10] Turn virNetServer* into virObject instances
Eric Blake
eblake at redhat.com
Mon Aug 6 19:46:12 UTC 2012
On 08/06/2012 05:53 AM, Daniel P. Berrange wrote:
> From: "Daniel P. Berrange" <berrange at redhat.com>
>
> Make all the virNetServer* objects use the virObject APIs
> for reference counting
>
> Signed-off-by: Daniel P. Berrange <berrange at redhat.com>
> ---
> daemon/libvirtd.c | 22 ++++-----
> daemon/stream.c | 19 ++------
> src/libvirt_private.syms | 7 ---
> src/libvirt_probes.d | 4 +-
> src/lxc/lxc_controller.c | 8 +--
> src/rpc/virnetserver.c | 79 ++++++++++++++----------------
> src/rpc/virnetserver.h | 5 +-
> src/rpc/virnetserverclient.c | 108 ++++++++++++++++++-----------------------
> src/rpc/virnetserverclient.h | 5 +-
> src/rpc/virnetserverprogram.c | 49 ++++++++++---------
> src/rpc/virnetserverprogram.h | 8 +--
> src/rpc/virnetserverservice.c | 83 +++++++++++++++----------------
> src/rpc/virnetserverservice.h | 5 +-
> 13 files changed, 172 insertions(+), 230 deletions(-)
I hit a minor merge conflict when applying this, thanks to my recent
HAVE_AVAHI stuff, but shouldn't be too hard for you to figure out.
> @@ -227,7 +243,7 @@ static int virNetServerDispatchNewMessage(virNetServerClientPtr client,
> job->msg = msg;
>
> if (prog) {
> - virNetServerProgramRef(prog);
> + virObjectRef(prog);
> job->prog = prog;
You could collapse these two lines into one if you want.
> +++ b/src/rpc/virnetserverclient.h
> @@ -26,6 +26,7 @@
>
> # include "virnetsocket.h"
> # include "virnetmessage.h"
> +# include "virobject.h"
Another place where I wonder if this would be better in the .c instead
of the .h.
> -void virNetServerProgramFree(virNetServerProgramPtr prog)
> +void virNetServerProgramDispose(void *obj ATTRIBUTE_UNUSED)
> {
> - if (!prog)
> - return;
> -
> - VIR_DEBUG("prog=%p refs=%d", prog, prog->refs);
> -
> - prog->refs--;
> - if (prog->refs > 0)
> - return;
> -
> - VIR_FREE(prog);
> }
This is a no-op; is it worth passing NULL instead of wasting space in
the executable for the stub function?
> +++ b/src/rpc/virnetserverservice.h
> @@ -25,6 +25,7 @@
> # define __VIR_NET_SERVER_SERVICE_H__
>
> # include "virnetserverprogram.h"
> +# include "virobject.h"
And another possible candidate for .c instead of .h.
Meanwhile, I noticed a couple missing changes, some required for 'make
check' to be happy; ACK once you squash this in:
diff --git i/cfg.mk w/cfg.mk
index 535d67b..64af1ee 100644
--- i/cfg.mk
+++ w/cfg.mk
@@ -148,13 +148,9 @@ useless_free_options = \
--name=virNetClientFree \
--name=virNetClientProgramFree \
--name=virNetClientStreamFree \
- --name=virNetServerFree \
- --name=virNetServerClientFree \
--name=virNetServerMDNSFree \
--name=virNetServerMDNSEntryFree \
--name=virNetServerMDNSGroupFree \
- --name=virNetServerProgramFree \
- --name=virNetServerServiceFree \
--name=virNWFilterDefFree \
--name=virNWFilterEntryFree \
--name=virNWFilterHashTableFree \
diff --git i/src/libvirt_private.syms w/src/libvirt_private.syms
index e071fe1..0543005 100644
--- i/src/libvirt_private.syms
+++ w/src/libvirt_private.syms
@@ -1555,13 +1555,11 @@ virNetServerProgramUnknownError;
# virnetserverservice.h
virNetServerServiceClose;
-virNetServerServiceFree;
virNetServerServiceGetAuth;
virNetServerServiceGetPort;
virNetServerServiceIsReadonly;
virNetServerServiceNewTCP;
virNetServerServiceNewUNIX;
-virNetServerServiceRef;
virNetServerServiceSetDispatcher;
virNetServerServiceToggle;
--
Eric Blake eblake at redhat.com +1-919-301-3266
Libvirt virtualization library http://libvirt.org
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 620 bytes
Desc: OpenPGP digital signature
URL: <http://listman.redhat.com/archives/libvir-list/attachments/20120806/dd324205/attachment-0001.sig>
More information about the libvir-list
mailing list