[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [PATCH 02/17] qom: Clean up inconsistent use of gchar * vs. char *
From: |
Daniel P . Berrangé |
Subject: |
Re: [PATCH 02/17] qom: Clean up inconsistent use of gchar * vs. char * |
Date: |
Mon, 4 May 2020 10:32:56 +0100 |
User-agent: |
Mutt/1.13.4 (2020-02-15) |
On Sat, May 02, 2020 at 07:06:38AM +0200, Markus Armbruster wrote:
> Eric Blake <address@hidden> writes:
>
> > On 4/28/20 11:34 AM, Markus Armbruster wrote:
> >> Uses of gchar * in qom/object.h:
> >>
> >
> > Nice audit. I don't know if we can blindly assume that 'gchar' is a
> > (stupid) typedef to 'char', or if they can ever differ, but avoiding
> > gchar where possible always makes sense to me.
>
> GLib's "basic types" are one of the most misguided aspects of its
> interface.
There is work to re-define them in terms of stdint.h
https://gitlab.gnome.org/GNOME/glib/issues/1484
with long term possible plan to deprecate them
> Quote https://developer.gnome.org/glib/stable/glib-Basic-Types.html
>
> GLib defines a number of commonly used types, which can be divided
> into several groups:
>
> New types which are not part of standard C (but are defined in
> various C standard library header files) — gboolean, gssize.
>
> Stuck in the 90s.
snip
> Purge with fire.
Note gboolean is a trap door. Any code integrating with GLib APIs that
use "gboolean" in their signature must keep using that. It is *NOT*
interchangable with the "bool" from stdbool.h.
"gboolean" is a typedef for "gint"
"bool" is a "_Bool" which is just a single byte.
Also note TRUE and true are not the same value.
'TRUE' is bitwise !FALSE
'true' is 1
Regards,
Daniel
--
|: https://berrange.com -o- https://www.flickr.com/photos/dberrange :|
|: https://libvirt.org -o- https://fstop138.berrange.com :|
|: https://entangle-photo.org -o- https://www.instagram.com/dberrange :|