Go to file
Adam Jackson 276d8057aa glx: Fix memory leak in context garbage collection (v2)
I broke this, back in:

    commit a48dadc98a
    Author: Adam Jackson <ajax@redhat.com>
    Date:   Mon Mar 21 11:59:29 2011 -0400

	glx: Reimplement context tags

In that, I changed the glx client state to not explicitly track the list
of current contexts for the client (since that was what we were deriving
tags from).  The bug was that I removed the code for same from
glxClientCallback without noticing that it had the side effect of
effectively de-currenting those contexts, so that ContextGone could free
them.  So, if you had a client exit with a context still current, the
context's memory would leak.  Not a huge deal for direct clients, but
viciously bad for indirect, since the swrast context state at the bottom
of Mesa is like 15M.

Fix this by promoting Bool isCurrent to ClientPtr currentClient, so that
we have a back-pointer to chase when walking the list of contexts when
ClientStateGone happens.

v2: Explicitly call __glXFreeContext on the ClientStateGone path.  Our
current context might be one we got from EXT_import_context and whose
creating client has since died.  Without the explicit call, the creating
client's FreeClientResources would not free the context because it's
still current, and the using client's FreeClientResources would not free
the context because it's not an XID it created.  This matches the logic
from a48dadc.

Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
Signed-off-by: Adam Jackson <ajax@redhat.com>
2013-10-29 10:30:43 -04:00
composite damage: Simplify DamageUnregister 2013-09-10 14:28:35 -04:00
config xserver: enable InputClass option "GrabDevice" by default for non-seat0 seats (#69478) 2013-09-25 03:52:54 +10:00
damageext Merge remote-tracking branch 'ajax/xserver-next' 2013-10-04 13:50:04 -07:00
dbe dbe: Fold the window private private into the window private 2013-09-10 13:28:24 -04:00
dix Merge commit '2523a445a09a75a8baf642608d099a5e12d5437f' 2013-10-18 17:22:52 -07:00
doc doc: Update documentation about Windows platforms support a bit 2012-10-29 12:21:14 +00:00
exa Skip damage calls if DamageCreate fails in exa functions 2013-10-14 17:56:44 -07:00
fb fb: Remove unused compatibility wrappers 2013-09-10 13:29:21 -04:00
glx glx: Fix memory leak in context garbage collection (v2) 2013-10-29 10:30:43 -04:00
hw Update GLX dependencies now that DRI & DRI2 are builtins, not modules 2013-10-14 17:56:44 -07:00
include sync: if the idle time was reset, force alarms to trigger (#70476) 2013-10-18 16:44:32 +10:00
m4 XORG_TLS: Pick the first option that works (ie: prefer __thread) 2013-02-14 09:20:47 -08:00
man Correct description of -displayfd option in man page. 2012-10-11 12:53:57 +01:00
mi damage: Simplify DamageUnregister 2013-09-10 14:28:35 -04:00
miext rootless: Use miCopyRegion instead of fbCopyRegion 2013-10-06 09:18:15 -07:00
os dix: provide accessor methods for the last device event time 2013-10-18 16:44:32 +10:00
pseudoramiX Move pseudoramiX code where it can be shared between Xwin and Xquartz 2013-08-30 12:52:30 +01:00
randr randr: Fix a copypasta bug in CRTC confinement 2013-09-10 13:26:25 -04:00
record Move extension initialisation prototypes into extinit.h 2012-07-09 23:06:41 -07:00
render Abstract cursor refcounting 2013-05-15 19:17:57 +10:00
test test: add new os executable to .gitignore 2013-09-25 03:52:54 +10:00
Xext sync: split updating and triggering a counter up 2013-10-18 16:48:25 +10:00
xfixes Abstract cursor refcounting 2013-05-15 19:17:57 +10:00
Xi Xi: allow for XIAllowEvent requests larger than XI < 2.2 size (#68554) 2013-08-30 14:26:55 +10:00
xkb xkb: don't call atoi(NULL) when parsing argv 2013-07-02 15:12:29 +10:00
.dir-locals.el Add .dir-locals.el 2013-08-17 12:17:36 +02: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.14.99.3 2013-10-18 17:31:01 -07:00
COPYING Shadow: Switch the Amiga/Atari bitplane code to the canonical X.Org license 2013-05-14 14:41:00 -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 Move pseudoramiX code where it can be shared between Xwin and Xquartz 2013-08-30 12:52:30 +01: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