]> xenbits.xensource.com Git - libvirt.git/commitdiff
maint: avoid 'const fooPtr' in public API
authorEric Blake <eblake@redhat.com>
Mon, 7 Oct 2013 18:36:00 +0000 (12:36 -0600)
committerEric Blake <eblake@redhat.com>
Mon, 14 Oct 2013 16:56:20 +0000 (10:56 -0600)
'const fooPtr' is the same as 'foo * const' (the pointer won't
change, but it's contents can).  But in general, if an interface
is trying to be const-correct, it should be using 'const foo *'
(the pointer is to data that can't be changed).

Fix up offenders in the public API.  Note that this is an API change;
but see commit 6ac6f59, where we first argued that this change is
harmless (but with that commit not actually making the change that it
claimed to be making):

    Although this is an API change (not ABI though), real callers won't be
    impacted. Why?
     1. these callback members are read-only, so it is less likely that
    someone is trying to assign into the struct members.
     2. The only way to register a virConnectDomainEventGraphicsCallback is
    to cast it through a call to virConnectDomainEventRegisterAny.  That is,
    even if the user's callback function leaves out the const, we never use
    the typedef as the direct type of any API parameter.  Since they are
    already casting their function pointer into a munged type before
    registering it, their code will continue to compile.

* include/libvirt/libvirt.h.in
(virConnectDomainEventGraphicsCallback): Use intended type.

include/libvirt/libvirt.h.in

index 820e8ce7778cff6339d7537595e4f7375bd9493e..2802a468529ebaa1ffff17817e038f5afe8a0140 100644 (file)
@@ -4701,10 +4701,10 @@ typedef virDomainEventGraphicsSubject *virDomainEventGraphicsSubjectPtr;
 typedef void (*virConnectDomainEventGraphicsCallback)(virConnectPtr conn,
                                                       virDomainPtr dom,
                                                       int phase,
-                                                      const virDomainEventGraphicsAddressPtr local,
-                                                      const virDomainEventGraphicsAddressPtr remote,
+                                                      const virDomainEventGraphicsAddress *local,
+                                                      const virDomainEventGraphicsAddress *remote,
                                                       const char *authScheme,
-                                                      const virDomainEventGraphicsSubjectPtr subject,
+                                                      const virDomainEventGraphicsSubject *subject,
                                                       void *opaque);
 
 /**