[Xcb] Xlib now only uses public XCB interfaces

Jamey Sharp jamey at minilop.net
Sat Dec 24 03:05:08 PST 2005

Hey all,

I've just committed some changes in XCB and Xlib.

XCB no longer installs xcbint.h. No longer can you screw with XCB's
insides whenever you feel like it, so we have lots of room to fix the
various stupid implementation mistakes I made when I started working on

Unfortunately Xlib still needed a tiny bit more than XCB's public API
offers. Turns out it needs two whole accessor functions, XCBGetIOLock
and XCBGetRequestSent, available from a new xcbxlib.h header file and
implemented in xcb_xlib.c. The copyright comment block dwarfs the code
in both files: I'm quite pleased by that.

Naturally, I've made a substantial commit to the Xlib source to quit
using XCB's internal interfaces. I'm most proud of the code that uses
XCBSendRequest, from the extension API, to pump Xlib's output queue into
XCB, almost as though Xlib were a proper XCB-using application.

These changes seem to have introduced a regression on the
XCreateColormap test in the X Test Suite, for reasons I don't understand
yet. The changes are such a big win from an architectural standpoint
though that I've committed them anyway.

I think there will be an assertion failure whenever XCB inserts an extra
padding request to keep sequence numbers in sync, and I don't know how
to fix it yet. I think there was probably a similar bug prior to these
changes that just never appeared in practice.

I have a fairly substantial architectural challenge with this new code
that I'll post in a separate message.

-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 189 bytes
Desc: Digital signature
Url : http://lists.freedesktop.org/archives/xcb/attachments/20051224/09d1f4d5/attachment-0001.pgp

More information about the Xcb mailing list