summaryrefslogtreecommitdiff
path: root/dix/dispatch.c
diff options
context:
space:
mode:
Diffstat (limited to 'dix/dispatch.c')
-rw-r--r--dix/dispatch.c58
1 files changed, 3 insertions, 55 deletions
diff --git a/dix/dispatch.c b/dix/dispatch.c
index bb30619a2..1ad3c9437 100644
--- a/dix/dispatch.c
+++ b/dix/dispatch.c
@@ -3692,7 +3692,7 @@ CloseDownClient(ClientPtr client)
#ifdef SMART_SCHEDULE
SmartLastClient = NullClient;
#endif
- dixFreePrivates(*DEVPRIV_PTR(client));
+ dixFreePrivates(client->devPrivates);
xfree(client);
while (!clients[currentMaxClients-1])
@@ -3712,10 +3712,6 @@ KillAllClients(void)
}
}
-extern int clientPrivateLen;
-extern unsigned *clientPrivateSizes;
-extern unsigned totalClientSize;
-
void InitClient(ClientPtr client, int i, pointer ospriv)
{
client->index = i;
@@ -3735,6 +3731,7 @@ void InitClient(ClientPtr client, int i, pointer ospriv)
client->big_requests = FALSE;
client->priority = 0;
client->clientState = ClientStateInitial;
+ client->devPrivates = NULL;
#ifdef XKB
if (!noXkbExtension) {
client->xkbClientFlags = 0;
@@ -3755,54 +3752,6 @@ void InitClient(ClientPtr client, int i, pointer ospriv)
#endif
}
-int
-InitClientPrivates(ClientPtr client)
-{
- char *ptr;
- DevUnion *ppriv;
- unsigned *sizes;
- unsigned size;
- int i;
-
- if (totalClientSize == sizeof(ClientRec))
- ppriv = (DevUnion *)NULL;
- else if (client->index)
- ppriv = (DevUnion *)(client + 1);
- else
- {
- ppriv = (DevUnion *)xalloc(totalClientSize - sizeof(ClientRec));
- if (!ppriv)
- return 0;
- }
- client->devPrivates = ppriv;
- sizes = clientPrivateSizes;
- ptr = (char *)(ppriv + clientPrivateLen);
- if (ppriv)
- bzero(ppriv, totalClientSize - sizeof(ClientRec));
- for (i = clientPrivateLen; --i >= 0; ppriv++, sizes++)
- {
- if ( (size = *sizes) )
- {
- ppriv->ptr = (pointer)ptr;
- ptr += size;
- }
- else
- ppriv->ptr = (pointer)NULL;
- }
-
- /* Allow registrants to initialize the serverClient devPrivates */
- if (!client->index && ClientStateCallback)
- {
- NewClientInfoRec clientinfo;
-
- clientinfo.client = client;
- clientinfo.prefix = (xConnSetupPrefix *)NULL;
- clientinfo.setup = (xConnSetup *) NULL;
- CallCallbacks((&ClientStateCallback), (pointer)&clientinfo);
- }
- return 1;
-}
-
/************************
* int NextAvailableClient(ospriv)
*
@@ -3819,11 +3768,10 @@ ClientPtr NextAvailableClient(pointer ospriv)
i = nextFreeClientID;
if (i == MAXCLIENTS)
return (ClientPtr)NULL;
- clients[i] = client = (ClientPtr)xalloc(totalClientSize);
+ clients[i] = client = (ClientPtr)xalloc(sizeof(ClientRec));
if (!client)
return (ClientPtr)NULL;
InitClient(client, i, ospriv);
- InitClientPrivates(client);
if (!InitClientResources(client))
{
xfree(client);