[Libguestfs] [PATCH nbdkit] server: Use bool for types which are really booleans.

Eric Blake eblake at redhat.com
Wed Jan 2 14:54:15 UTC 2019


On 1/1/19 12:21 PM, Richard W.M. Jones wrote:
> For mainly historical reasons we tended to use int to store boolean
> values.  However using bool is probably safer in some corner cases
> (eg. ‘v == true’ can fail badly if v is an int, but works for bool).

The problems only occur when v is an int and set to something other than
0 or 1.  But yes, in general using the bool type is worth doing.

> bool was added in C99 so let's use it.
> ---
>  server/internal.h    | 16 +++++------
>  server/connections.c | 28 +++++++++---------
>  server/crypto.c      |  4 +--
>  server/main.c        | 67 ++++++++++++++++++++++----------------------
>  server/plugins.c     |  2 +-
>  5 files changed, 59 insertions(+), 58 deletions(-)


> +++ b/server/connections.c
> @@ -78,13 +78,13 @@ struct connection {
>    uint32_t cflags;
>    uint64_t exportsize;
>    uint16_t eflags;
> -  int readonly;
> -  int can_flush;
> -  int is_rotational;
> -  int can_trim;
> -  int can_zero;
> -  int can_fua;
> -  int using_tls;
> +  bool readonly;
> +  bool can_flush;
> +  bool is_rotational;
> +  bool can_trim;
> +  bool can_zero;
> +  bool can_fua;
> +  bool using_tls;

Some of these were 'int' because they have tri-state returns from the
client (-1 for error, or 0/1 for success).  I suppose that making them
bool means that you only store into it after checking for errors, but it
does mean that we have to audit a bit more carefully that we aren't
accidentally turning -1 into true.

But I didn't spot any obvious problems, so I think the patch is good to go.

-- 
Eric Blake, Principal Software Engineer
Red Hat, Inc.           +1-919-301-3226
Virtualization:  qemu.org | libvirt.org

-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 488 bytes
Desc: OpenPGP digital signature
URL: <http://listman.redhat.com/archives/libguestfs/attachments/20190102/3631e6cb/attachment.sig>


More information about the Libguestfs mailing list