[Mesa-dev] boolean usage in gallium

Ilia Mirkin imirkin at alum.mit.edu
Tue Jul 23 02:34:18 UTC 2019


PSA - I've pushed the changes which flip the gallium APIs and their
direct users from boolean -> bool. I've tried to take every precaution
against breaking compilation, but it's conceivable something got
missed in the repository-wide update. However fixing it up should be
trivial - let me know if you should have trouble, I'm happy to help. I
have not updated any of the various drivers' internal usages, and
encourage gallium driver and state tracker maintainers to convert

boolean -> bool
TRUE -> true
FALSE -> false

The one caveat I'll note is that the following situation can occur with boolean:

void f(int x) { print(x); }
void g(boolean x) { f(x); }
void h() { g(123); }

This will print 123, since boolean is a char. With bool, it will print
1. IMHO any code which relies on this behavior is a bug, but bugs do
happen, so a blind conversion can be dangerous.

Cheers,

  -ilia

On Sat, Jun 29, 2019 at 12:08 AM Ilia Mirkin <imirkin at alum.mit.edu> wrote:
>
> Ken pointed out on IRC today that there was still a lot of "boolean"
> (vs bool/_Bool) usage in gallium. In fact, many interfaces are
> specified with boolean.
>
> I had it in my mind that I had at some point removed most boolean
> usage, but that is just not the case - first of all, the interfaces
> remain with it, and I could find no evidence of such a commit. I must
> have imagined it.
>
> Is there any reason to keep boolean around? I know conversions must be
> done carefully (since incorrect-but-working usage would not currently
> be caught by the compiler), but are there any practical reasons to
> avoid C99 _Bool in gallium code?
>
> If not, I may begin converting things over.
>
> Cheers,
>
>   -ilia


More information about the mesa-dev mailing list