On 05/19/2014 10:57 AM, Roman Bogorodskiy wrote:
Eric Blake wrote:
> On 05/17/2014 01:44 PM, Roman Bogorodskiy wrote:
>> In a number of places in the bhyve driver, virObjectUnlock()
>> is called with an arg without check if the arg is non-NULL, which
>> could result in passing NULL value and a warning like:
>>
>> virObjectUnlock:340 : Object 0x0 ((unknown)) is not a virObjectLockable instance
>
> Doesn't this instead argue that we should fix virObjectUnlock to
> gracefully handle a NULL parameter, rather than making every caller uglier?
Calling it with NULL seems to be harmless anyway and the only problem
is this annoying warning.
So, what you propose is checking explicitly for NULL in
virObjectUnlock before we do virObjectIsClass(), and if the passed
argument is NULL indeed, just return, without logging anything about
that?
Yes, since we have other virObject code that special cases NULL (for
example, virObjectUnref).
BTW, that's going to be a vast change, quick grep shows more than 750
calls of that function.
It doesn't invalidate any existing caller to make virObjectUnlock()
special-case NULL. And while it DOES make any existing caller that also
checks for NULL be a case of redundant code, we don't have to clean all
callers up in a single patch.
--
Eric Blake eblake redhat com +1-919-301-3266
Libvirt virtualization library
http://libvirt.org