diff options
author | Ulrich Sibiller <uli42@gmx.de> | 2017-02-19 00:06:54 +0100 |
---|---|---|
committer | Ulrich Sibiller <uli42@gmx.de> | 2017-02-24 12:09:20 +0100 |
commit | 3d8575c2114ed98e525c422bba88e04f0af7f029 (patch) | |
tree | d24fcf630f3e50c8c12fe3bbfe7b16e4ced02f6e /nx-X11/programs/Xserver/dix/dispatch.c | |
parent | 3c322ffbb911b70415c47cb8ba1c3559241819f6 (diff) | |
download | nx-libs-3d8575c2114ed98e525c422bba88e04f0af7f029.tar.gz nx-libs-3d8575c2114ed98e525c422bba88e04f0af7f029.tar.bz2 nx-libs-3d8575c2114ed98e525c422bba88e04f0af7f029.zip |
dix: fix incomplete commit
The following commit turned out to be incomplete. This commit makes it
complete by removing client->lastDrawable/lastGC everywhere thus
fixing ArcticaProject/nx-libs#306 and #322
commit e6f2f6427122dc4bc802acebf26f8cec16cd2f62
Author: Mike Gabriel <mike.gabriel@das-netzwerkteam.de>
Date: Mon Jun 20 16:45:38 2016 +0200
dix: remove caching of drawables and graphics contexts. The security checks simply bypass the cached values so they are unused.
Backported from X.org:
commit 9a183d7ba50e31afa133cc03aee7991517a283ea
Author: Eamon Walsh <ewalsh@tycho.nsa.gov>
Date: Tue Aug 14 11:39:26 2007 -0400
dix: remove caching of drawables and graphics contexts. The security checks
simply bypass the cached values so they are unused.
Backport to nx-libs: Mike Gabriel <mike.gabriel@das-netzwerkteam.de>
Diffstat (limited to 'nx-X11/programs/Xserver/dix/dispatch.c')
-rw-r--r-- | nx-X11/programs/Xserver/dix/dispatch.c | 42 |
1 files changed, 1 insertions, 41 deletions
diff --git a/nx-X11/programs/Xserver/dix/dispatch.c b/nx-X11/programs/Xserver/dix/dispatch.c index 02d5170fb..044ba1c4b 100644 --- a/nx-X11/programs/Xserver/dix/dispatch.c +++ b/nx-X11/programs/Xserver/dix/dispatch.c @@ -216,33 +216,6 @@ InitSelections() } #endif /* NXAGENT_SERVER */ -void -FlushClientCaches(XID id) -{ - int i; - register ClientPtr client; - - client = clients[CLIENT_ID(id)]; - if (client == NullClient) - return ; - for (i=0; i<currentMaxClients; i++) - { - client = clients[i]; - if (client != NullClient) - { - if (client->lastDrawableID == id) - { - client->lastDrawableID = screenInfo.screens[0]->root->drawable.id; - client->lastDrawable = (DrawablePtr)screenInfo.screens[0]->root; - } - else if (client->lastGCID == id) - { - client->lastGCID = INVALID; - client->lastGC = (GCPtr)NULL; - } - } - } -} #undef SMART_DEBUG #define SMART_SCHEDULE_DEFAULT_INTERVAL 20 /* ms */ @@ -3629,20 +3602,7 @@ void InitClient(ClientPtr client, int i, void * ospriv) client->sequence = 0; client->clientAsMask = ((Mask)i) << CLIENTOFFSET; client->clientGone = FALSE; - if (i) - { - client->closeDownMode = DestroyAll; - client->lastDrawable = (DrawablePtr)screenInfo.screens[0]->root; - client->lastDrawableID = screenInfo.screens[0]->root->drawable.id; - } - else - { - client->closeDownMode = RetainPermanent; - client->lastDrawable = (DrawablePtr)NULL; - client->lastDrawableID = INVALID; - } - client->lastGC = (GCPtr) NULL; - client->lastGCID = INVALID; + client->closeDownMode = i ? DestroyAll : RetainPermanent; client->numSaved = 0; client->saveSet = (SaveSetElt *)NULL; client->noClientException = Success; |