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

Michal Privoznik mprivozn at redhat.com
Wed May 22 17:04:56 UTC 2013


On 21.05.2013 01:20, Eric Blake wrote:
> 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.
> 

Okay, I've pushed the first three patches. Thanks so far.

Michal




More information about the libvir-list mailing list