Re: [PATCH] Change return value of VIR_DRV_SUPPORTS_FEATURE to bool

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 12/03/2010 01:48 AM, Jiri Denemark wrote:
> virDrvSupportsFeature API is allowed to return -1 on error while all but
> one uses of VIR_DRV_SUPPORTS_FEATURE only check for (non)zero return
> value. Let's make this macro return zero on error, which is what
> everyone expects anyway.
> ---
>  src/driver.h  |    8 ++++----
>  src/libvirt.c |    5 ++++-
>  2 files changed, 8 insertions(+), 5 deletions(-)

That is, if you care about the possibility of an error, call the
function directly; and if you use the macro, then you don't care about
errors and are happy treating an error the same as not present.

Seems reasonable.

> 
> diff --git a/src/driver.h b/src/driver.h
> index b770e5e..e797a75 100644
> --- a/src/driver.h
> +++ b/src/driver.h
> @@ -52,12 +52,12 @@ typedef enum {
>   * Note that you must check for errors.

However, this comment is no longer applicable.  So you'll need a v2 that
fixes the documentation, and make it explicit that the macro ignores
errors, as well as a cross-reference to the actual function for someone
that cares about errors.

>   *
>   * Returns:
> - *   >= 1  Feature is supported.
> + *   != 0  Feature is supported.
>   *   0     Feature is not supported.
> - *   -1    Error.
>   */
> -# define VIR_DRV_SUPPORTS_FEATURE(drv,conn,feature)                      \
> -    ((drv)->supports_feature ? (drv)->supports_feature((conn),(feature)) : 0)
> +# define VIR_DRV_SUPPORTS_FEATURE(drv,conn,feature)                         \
> +    ((drv)->supports_feature ?                                              \
> +        (drv)->supports_feature((conn), (feature)) > 0 : 0)
>  

-- 
Eric Blake   eblake@xxxxxxxxxx    +1-801-349-2682
Libvirt virtualization library http://libvirt.org

Attachment: signature.asc
Description: OpenPGP digital signature

--
libvir-list mailing list
libvir-list@xxxxxxxxxx
https://www.redhat.com/mailman/listinfo/libvir-list

[Index of Archives]     [Virt Tools]     [Libvirt Users]     [Lib OS Info]     [Fedora Users]     [Fedora Desktop]     [Fedora SELinux]     [Big List of Linux Books]     [Yosemite News]     [KDE Users]     [Fedora Tools]