On 27.08.2013 14:07, Eric Blake wrote: > On 08/27/2013 06:03 AM, Laine Stump wrote: >> On 08/26/2013 09:39 AM, Ján Tomko wrote: >>> If the network has not been found, virNetworkFree(NULL) >>> was called, resulting in an extra error: >>> error: invalid network pointer in virNetworkFree >> >> >> The patch is okay, but all vir*Free() functions should be NOPs when the >> argument is NULL. > > All _internal_ vir*Free functions should be NOPs. All public vir*Free > APIs (including virNetworkFree) are documented to explicitly fail on > NULL arguments (more precisely, on any argument not created by an > earlier API call), and we cannot change that behavior as it would be an > API change that violates back-compat.
Why it would break backward compatibility? I think it will break forward compatibility instead (which we don't care about). That is, currently apps have to use: virXPtr obj = NULL; obj = virLookupBy..(); ... do something with obj; ret = 0; cleanup: if (obj) virXFree(obj); However, if virXFree would accept NULL, it won't affect older applications, while new can just: cleanup: virXFree(obj); But then again, this is forward compatibility (the code won't work with downgraded libvirtd) - but who cares? Michal -- libvir-list mailing list libvir-list@redhat.com https://www.redhat.com/mailman/listinfo/libvir-list