[PATCH:libX11 1/2] Bug 32098: Making XInternAtoms take const char ** breaks callers
Alan Coopersmith
alan.coopersmith at oracle.com
Tue Dec 21 18:46:56 PST 2010
On 12/14/10 04:16 AM, Daniel Stone wrote:
> On Mon, Dec 13, 2010 at 05:22:58PM -0800, Alan Coopersmith wrote:
>> Callers who had successfully built without issues with the existing
>> libX11 headers were suddenly either given warnings or errors (-Werror)
>> with the new headers.
>>
>> This compromise solution allows us to move to the correct declaration
>> without breaking such callers - if they simply include the headers as
>> is, nothing changes for them. If they want to take advantage of the
>> new const declaration to avoid getting warnings from passing arrays of
>> string literals, then they can #define XINTERNATOMS_WANT_CONST_NAMES
>> before they #include <X11/Xlib.h>. Callers using pkg-config will
>> eventually be able to require x11 > 1.4 to get this - those not using
>> pkg-config or not wanting a hard requirement can simply check after
>> the #include <X11/Xlib.h> for #ifdef XINTERNATOMS_HAVE_CONST_NAMES
>> to see if the header is new enough to have satisfied their request.
>
> Hm, I'm really not wild about this at all. Getting all our types right
> is hard enough as it is, and I suspect we're just going to have problems
> with this leaking anyway. What happens if a toolkit and an app, or an
> app and a helper library, or whatever, disagree on whether or not the
> arguments need to be const?
>
> I'd say that we should just chalk this down as yet another Xlib API
> mistake, and people who need it to be const can just do the cast, take
> the warning if necessary, and move on with their lives. Or move on to
> XCB.
Yeah, I hadn't thought through the issues of different levels of library
& toolkit with different ideas about what's right. I declare defeat and
will revert the original change.
--
-Alan Coopersmith- alan.coopersmith at oracle.com
Oracle Solaris Platform Engineering: X Window System
More information about the xorg-devel
mailing list