[Lazarus] GTK2 gboolean changed

Marco van de Voort marcov at stack.nl
Sun Jul 3 23:17:12 CEST 2011


(related to mantis 17400)

FYI

In FPC/trunk the GTK2 gboolean type has been changed from "longbool" to a
new type "boolean32".

motivation:

There have been some problems with the GTK2 boolean type for a while.

The longbool type that was used till now had the advantage of being 32-bit
and compatible to pascal boolean (and pascal if ... then tests), but had the
disadvantage that values unequal to 0 and 1 were legal in it, and could be
passed to GTK2.

An attempt to fix this using an enum = (gfalse=0,gtrue=1) failed because it
needed too many (100+) patches. The compiler devels then implemented a new boolean
type, boolean32. This type, if I understood it right is a normal Boolean but
4 bytes wide. 

I tested this today, and everything seemed to work. Lazarus only needed one
oneline change that I committed, since it is still compatible with the old
(2.4.x) situation.

Please keep an eye open the coming days for new gtk2 related problems that
could signal there is a problem.

FPC (2.5.1) can be compiled with noboolean32 to get the old situation back.




More information about the Lazarus mailing list