Created attachment 31059 [details]
Test program attached.
ginn@opensolaris:~$ cc cairotest.c
"cairotest.c", line 18: warning: initializer does not fit or is out of range: 0xffffffff
ginn@opensolaris:~$ gcc-4.3.2 cairotest.c
I'm not sure if the behavior is implement dependent.
I think it would be safer if we use 0x7fffffff for CAIRO_FORMAT_INVALID or case it to unsigned it in CAIRO_FORMAT_VALID.
Created attachment 31060 [details] [review]
This bug is causing crashes of Firefox 3.6/3.7 on xBGR frame buffer.
I understood you are considering change the value of CAIRO_FORMAT_INVALID.
Please at least take the workaround for 1.10.
Okay, things are moving again! Apologies for playing the dead brick part for the last good while. We want to expose the invalid value explicitly in the enum so that the enum type isn't abused so hard in the code. This ought to be an ABI compatible change AFAICT, since Sun's cc is telling me that sizeof() the type won't change, and anyway we're only passing the format to/from the client via formal arguments or as a return value.
This should now be fixed in git master.