Go to file
Aaron Plattner 8b328d4ee3 dix: Make small bitfields that store enums unsigned
Commit 31bf81772e changed the clientState field
from a signed int to a signed int 2-bit bitfield.  The ClientState enum that is
expected to be assigned to this field has four values: ClientStateInitial (0),
ClientStateRunning (1), ClientStateRetained (2), and ClientStateGone (3).
However, because this bitfield is signed, ClientStateRetained becomes -2 when
assigned, and ClientStateGone becomes -1.  This causes warnings:

 test.c:54:10: error: case label value exceeds maximum value for type [-Werror]
 test.c:55:10: error: case label value exceeds maximum value for type [-Werror]

The code here is a switch statement:

 53     switch (client->clientState) {
 54     case ClientStateGone:
 55     case ClientStateRetained:
 56         [...]
 57         break;
 58
 59     default:
 60         [...]
 61         break;
 62     }

It also causes bizarre problems like this:

 client->clientState = ClientStateGone;
 assert(client->clientState == ClientStateGone); // this assert fails

Also change the signedness of nearby bitfields to match.

Signed-off-by: Aaron Plattner <aplattner@nvidia.com>
Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
Reviewed-by:  Colin Harrison <colin.harrison at virgin.net>
Signed-off-by: Keith Packard <keithp@keithp.com>
2013-01-08 16:45:22 -08:00
composite Move extension initialisation prototypes into extinit.h 2012-07-09 23:06:41 -07:00
config config/udev: ignore change on drm devices 2012-09-19 10:47:04 +10:00
damageext Move extension initialisation prototypes into extinit.h 2012-07-09 23:06:41 -07:00
dbe Move extension initialisation prototypes into extinit.h 2012-07-09 23:06:41 -07:00
dix Merge remote-tracking branch 'yselkowitz/master' 2012-12-19 12:22:03 -08:00
doc doc: Update documentation about Windows platforms support a bit 2012-10-29 12:21:14 +00:00
exa Fix formatting of address operators 2012-12-05 18:09:48 -06:00
fb Fix formatting of address operators 2012-12-05 18:09:48 -06:00
glx Merge remote-tracking branch 'yselkowitz/master' 2012-12-19 12:22:03 -08:00
hw Merge remote-tracking branch 'jeremyhu/master' 2012-12-19 12:26:00 -08:00
include dix: Make small bitfields that store enums unsigned 2013-01-08 16:45:22 -08:00
m4 Use XORG_STRICT_OPTION from util-macros 1.14 to set -Werror flags 2011-05-27 19:51:05 -07:00
man Correct description of -displayfd option in man page. 2012-10-11 12:53:57 +01:00
mi Merge remote-tracking branch 'alanc/master' 2012-12-19 12:17:59 -08:00
miext miext/damage: Only wrap into the GC ops chain if there's a listener (v3) 2012-09-23 10:47:18 -07:00
os Fix formatting of address operators 2012-12-05 18:09:48 -06:00
randr randr: call RRProviderInit in the proper place. 2012-11-30 07:25:54 -08:00
record Move extension initialisation prototypes into extinit.h 2012-07-09 23:06:41 -07:00
render render: fix shadow warnings 2012-11-05 13:25:04 -06:00
test Merge remote-tracking branch 'yselkowitz/master' 2012-12-19 12:22:03 -08:00
Xext Fix formatting of address operators 2012-12-05 18:09:48 -06:00
xfixes Merge remote-tracking branch 'whot/barriers' 2012-12-19 12:09:31 -08:00
Xi Merge remote-tracking branch 'yselkowitz/master' 2012-12-19 12:22:03 -08:00
xkb Merge remote-tracking branch 'yselkowitz/master' 2012-12-19 12:22:03 -08:00
.gitignore doc: relocate xserver.ent in the package root directory 2011-05-14 11:22:26 -07:00
autogen.sh autogen.sh: Honor NOCONFIGURE=1 2012-10-19 13:12:33 +10:00
configure.ac Update to version 1.13.99.901 (1.14 RC1) 2012-12-19 12:47:35 -08:00
COPYING Loader: Remove extension initialisation sorting 2012-07-10 00:31:02 -07:00
devbook.am devbook.am: maintenance update from docbook.am 2011-09-21 14:07:52 -07:00
docbook.am docbook.am: embed css styles inside the HTML HEAD element 2011-09-21 14:07:49 -07:00
fix-miregion Change region implementation names to eliminate the 'mi' prefix 2010-06-05 17:47:32 -07:00
fix-miregion-private Change region implementation names to eliminate the 'mi' prefix 2010-06-05 17:47:32 -07:00
fix-patch-whitespace Rename region macros to eliminate screen argument 2010-06-05 18:59:00 -07:00
fix-region Rename region macros to eliminate screen argument 2010-06-05 18:59:00 -07:00
Makefile.am Add 'install-headers' target in the top-level Makefile 2012-07-09 16:29:04 -07:00
manpages.am Xdmx.man: Show actual configured XKB defaults instead of old hardcoded values 2011-06-21 17:54:14 -07:00
README packaging: provide a default README file #24206 2010-01-27 14:00:17 -08:00
xorg-server.m4 macros: clarify documentation 2012-11-05 13:24:57 -06:00
xorg-server.pc.in xfree86: link modules against Xorg symbols on Cygwin 2012-04-05 21:57:07 -05:00
xserver.ent.in doc: relocate xserver.ent in the package root directory 2011-05-14 11:22:26 -07:00

					X Server

The X server accepts requests from client applications to create windows,
which are (normally rectangular) "virtual screens" that the client program
can draw into.

Windows are then composed on the actual screen by the X server
(or by a separate composite manager) as directed by the window manager,
which usually communicates with the user via graphical controls such as buttons
and draggable titlebars and borders.

For a comprehensive overview of X Server and X Window System, consult the
following article:
http://en.wikipedia.org/wiki/X_server

All questions regarding this software should be directed at the
Xorg mailing list:

        http://lists.freedesktop.org/mailman/listinfo/xorg

Please submit bug reports to the Xorg bugzilla:

        https://bugs.freedesktop.org/enter_bug.cgi?product=xorg

The master development code repository can be found at:

        git://anongit.freedesktop.org/git/xorg/xserver

        http://cgit.freedesktop.org/xorg/xserver

For patch submission instructions, see:

	http://www.x.org/wiki/Development/Documentation/SubmittingPatches

For more information on the git code manager, see:

        http://wiki.x.org/wiki/GitPage