[libvirt] [PATCH v4 03/13] Change virConnectDomainEventGraphicsCallback signature

Eric Blake eblake at redhat.com
Mon May 20 23:20:09 UTC 2013


On 05/20/2013 11:55 AM, Michal Privoznik wrote:
> For future work we need _virDomainEventGraphicsAddress and
> _virDomainEventGraphicsSubjectIdentity members to be char * not
> const char *. We are strdup()ing them anyway, so they should have
> been char * anyway (from const correctness POV). However, we
> don't want users to change passed values, so we need to make the
> callback's argument const.
> ---
>  include/libvirt/libvirt.h.in | 14 +++++++-------
>  1 file changed, 7 insertions(+), 7 deletions(-)

Please update your commit message to include a bit more justification -
this part of my analysis on v3 (slightly reworded here) would be a good
start:


Although this is an API change, 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.


ACK with that improvement.

-- 
Eric Blake   eblake 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: 621 bytes
Desc: OpenPGP digital signature
URL: <http://listman.redhat.com/archives/libvir-list/attachments/20130520/9448e62c/attachment-0001.sig>


More information about the libvir-list mailing list