Commit e6f2f642 authored by Mike Gabriel's avatar Mike Gabriel

dix: remove caching of drawables and graphics contexts. The security checks…

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>
parent 27459865
...@@ -530,8 +530,6 @@ FreeResource(XID id, RESTYPE skipDeleteFuncType) ...@@ -530,8 +530,6 @@ FreeResource(XID id, RESTYPE skipDeleteFuncType)
RESTYPE rtype = res->type; RESTYPE rtype = res->type;
*prev = res->next; *prev = res->next;
elements = --*eltptr; elements = --*eltptr;
if (rtype & RC_CACHED)
FlushClientCaches(res->id);
if (rtype != skipDeleteFuncType) if (rtype != skipDeleteFuncType)
(*DeleteFuncs[rtype & TypeMask])(res->value, res->id); (*DeleteFuncs[rtype & TypeMask])(res->value, res->id);
xfree(res); xfree(res);
...@@ -542,11 +540,6 @@ FreeResource(XID id, RESTYPE skipDeleteFuncType) ...@@ -542,11 +540,6 @@ FreeResource(XID id, RESTYPE skipDeleteFuncType)
else else
prev = &res->next; prev = &res->next;
} }
if(clients[cid] && (id == clients[cid]->lastDrawableID))
{
clients[cid]->lastDrawable = (DrawablePtr)screenInfo.screens[0]->root;
clients[cid]->lastDrawableID = screenInfo.screens[0]->root->drawable.id;
}
} }
if (!gotOne) if (!gotOne)
ErrorF("Freeing resource id=%lX which isn't there.\n", ErrorF("Freeing resource id=%lX which isn't there.\n",
...@@ -570,8 +563,6 @@ FreeResourceByType(XID id, RESTYPE type, Bool skipFree) ...@@ -570,8 +563,6 @@ FreeResourceByType(XID id, RESTYPE type, Bool skipFree)
if (res->id == id && res->type == type) if (res->id == id && res->type == type)
{ {
*prev = res->next; *prev = res->next;
if (type & RC_CACHED)
FlushClientCaches(res->id);
if (!skipFree) if (!skipFree)
(*DeleteFuncs[type & TypeMask])(res->value, res->id); (*DeleteFuncs[type & TypeMask])(res->value, res->id);
xfree(res); xfree(res);
...@@ -580,11 +571,6 @@ FreeResourceByType(XID id, RESTYPE type, Bool skipFree) ...@@ -580,11 +571,6 @@ FreeResourceByType(XID id, RESTYPE type, Bool skipFree)
else else
prev = &res->next; prev = &res->next;
} }
if(clients[cid] && (id == clients[cid]->lastDrawableID))
{
clients[cid]->lastDrawable = (DrawablePtr)screenInfo.screens[0]->root;
clients[cid]->lastDrawableID = screenInfo.screens[0]->root->drawable.id;
}
} }
} }
...@@ -607,8 +593,6 @@ ChangeResourceValue (XID id, RESTYPE rtype, void * value) ...@@ -607,8 +593,6 @@ ChangeResourceValue (XID id, RESTYPE rtype, void * value)
for (; res; res = res->next) for (; res; res = res->next)
if ((res->id == id) && (res->type == rtype)) if ((res->id == id) && (res->type == rtype))
{ {
if (rtype & RC_CACHED)
FlushClientCaches(res->id);
res->value = value; res->value = value;
return TRUE; return TRUE;
} }
...@@ -732,8 +716,6 @@ FreeClientNeverRetainResources(ClientPtr client) ...@@ -732,8 +716,6 @@ FreeClientNeverRetainResources(ClientPtr client)
if (rtype & RC_NEVERRETAIN) if (rtype & RC_NEVERRETAIN)
{ {
*prev = this->next; *prev = this->next;
if (rtype & RC_CACHED)
FlushClientCaches(this->id);
(*DeleteFuncs[rtype & TypeMask])(this->value, this->id); (*DeleteFuncs[rtype & TypeMask])(this->value, this->id);
xfree(this); xfree(this);
} }
...@@ -778,8 +760,6 @@ FreeClientResources(ClientPtr client) ...@@ -778,8 +760,6 @@ FreeClientResources(ClientPtr client)
{ {
RESTYPE rtype = this->type; RESTYPE rtype = this->type;
*head = this->next; *head = this->next;
if (rtype & RC_CACHED)
FlushClientCaches(this->id);
(*DeleteFuncs[rtype & TypeMask])(this->value, this->id); (*DeleteFuncs[rtype & TypeMask])(this->value, this->id);
xfree(this); xfree(this);
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment