[libvirt] [PATCH v4 10/25] [ACKED] conf: make virDomainPCIAddressGetNextSlot() a local static function

Laine Stump laine at laine.org
Sat Oct 22 01:41:07 UTC 2016


On 10/18/2016 10:46 AM, Andrea Bolognani wrote:
> On Fri, 2016-10-14 at 15:54 -0400, Laine Stump wrote:
>> This function is no longer needed outside of domain_addr.c.
>> ---
>>    src/conf/domain_addr.c   | 2 +-
>>    src/conf/domain_addr.h   | 5 -----
>>    src/libvirt_private.syms | 1 -
>>    3 files changed, 1 insertion(+), 7 deletions(-)
>>   
>> diff --git a/src/conf/domain_addr.c b/src/conf/domain_addr.c
>> index 1710220..3a9e474 100644
>> --- a/src/conf/domain_addr.c
>> +++ b/src/conf/domain_addr.c
>> @@ -591,7 +591,7 @@ virDomainPCIAddressSetFree(virDomainPCIAddressSetPtr addrs)
>>    }
>>    
>>    
>> -int
>> +static int
>>    virDomainPCIAddressGetNextSlot(virDomainPCIAddressSetPtr addrs,
>>                                   virPCIDeviceAddressPtr next_addr,
>>                                   virDomainPCIConnectFlags flags)
>> diff --git a/src/conf/domain_addr.h b/src/conf/domain_addr.h
>> index 904d060..4d6d12a 100644
>> --- a/src/conf/domain_addr.h
>> +++ b/src/conf/domain_addr.h
>> @@ -155,11 +155,6 @@ int virDomainPCIAddressReleaseSlot(virDomainPCIAddressSetPtr addrs,
>>                                       virPCIDeviceAddressPtr addr)
>>        ATTRIBUTE_NONNULL(1) ATTRIBUTE_NONNULL(2);
>>    
>> -int virDomainPCIAddressGetNextSlot(virDomainPCIAddressSetPtr addrs,
>> -                                   virPCIDeviceAddressPtr next_addr,
>> -                                   virDomainPCIConnectFlags flags)
>> -    ATTRIBUTE_NONNULL(1) ATTRIBUTE_NONNULL(2);
> As noted while reviewing v3, you're losing both
> ATTRIBUTE_NONNULL() with this commit. I was probably not
> clear enough last time around, sorry about that :(

Nah, I just assumed you were merely pointing it out, not that you 
actually wanted me to maintain it in the static function.

I actually dislike ATTRIBUTE_NONNULL() because it doesn't guarantee any 
behavior of the functions callers, and even worse - it ends up 
optimizing out any code in the function that actually *checks* for those 
arguments being NULL. So it ends up being 0 help in catching any 
accidental NULL references (*maybe* it can be used by a static analyzer, 
but I remember at least one occasion where it actually covered up / 
created a bug by removing the check for NULL when one of the callers of 
a function actually was sending a NULL).

Still, I'll move the ATTRIBUTE_NONNULL over to the static function, and 
leave the debate of whether or not it really should be there to another day.




More information about the libvir-list mailing list