The code previously assumed that everything has to be aligned to a 4 byte boundary. This assumption is wrong as e.g. the STR struct from xproto shows. Instead, each type has to be aligned to its natural alignment. So a char doesn't need any alignment, a INT16 gets aligned to a 2-byte-boundary and a INT32 gets the old 4 byte alignment. I'm not 100% sure that this commit is correct, but some quick tests with awesome and cairo-xcb went well. This commit causes lots of dead assignments to xcb_align_to since only the last field's alignment is actually used, but this simplified this patch a lot. Fixes: https://bugs.freedesktop.org/show_bug.cgi?id=34037 Signed-off-by: Uli Schlachter <psychon@znc.in> Signed-off-by: Peter Harris <pharris@opentext.com> |
||
---|---|---|
doc | ||
src | ||
tests | ||
tools | ||
.gitignore | ||
COPYING | ||
INSTALL | ||
Makefile.am | ||
NEWS | ||
README | ||
acinclude.m4 | ||
autogen.sh | ||
configure.ac | ||
xcb-composite.pc.in | ||
xcb-damage.pc.in | ||
xcb-dpms.pc.in | ||
xcb-dri2.pc.in | ||
xcb-glx.pc.in | ||
xcb-randr.pc.in | ||
xcb-record.pc.in | ||
xcb-render.pc.in | ||
xcb-res.pc.in | ||
xcb-screensaver.pc.in | ||
xcb-shape.pc.in | ||
xcb-shm.pc.in | ||
xcb-sync.pc.in | ||
xcb-xevie.pc.in | ||
xcb-xf86dri.pc.in | ||
xcb-xfixes.pc.in | ||
xcb-xinerama.pc.in | ||
xcb-xinput.pc.in | ||
xcb-xkb.pc.in | ||
xcb-xprint.pc.in | ||
xcb-xselinux.pc.in | ||
xcb-xtest.pc.in | ||
xcb-xv.pc.in | ||
xcb-xvmc.pc.in | ||
xcb.pc.in |
About libxcb ============ libxcb provides an interface to the X Window System protocol, which replaces the current Xlib interface. It has several advantages over Xlib, including: - size: small, simple library, and lower memory footprint - latency hiding: batch several requests and wait for the replies later - direct protocol access: interface and protocol correspond exactly - proven thread support: transparently access XCB from multiple threads - easy extension implementation: interfaces auto-generated from XML-XCB Xlib can also use XCB as a transport layer, allowing software to make requests and receive responses with both, which eases porting to XCB. However, client programs, libraries, and toolkits will gain the most benefit from a native XCB port. Please report any issues you find to the freedesktop.org bug tracker, at: <https://bugs.freedesktop.org/enter_bug.cgi?product=XCB> Discussion about XCB occurs on the XCB mailing list: <mailto:xcb at lists.freedesktop.org> <http://lists.freedesktop.org/mailman/listinfo/xcb> You can obtain the latest development versions of XCB using GIT. For anonymous checkouts, use: git clone git://anongit.freedesktop.org/git/xcb/libxcb For developers, use: git clone git+ssh://git.freedesktop.org/git/xcb/libxcb