summaryrefslogtreecommitdiff
path: root/dix/main.c
diff options
context:
space:
mode:
Diffstat (limited to 'dix/main.c')
-rw-r--r--dix/main.c54
1 files changed, 7 insertions, 47 deletions
diff --git a/dix/main.c b/dix/main.c
index 3e5d0e438..7f7bfa539 100644
--- a/dix/main.c
+++ b/dix/main.c
@@ -118,15 +118,12 @@ Equipment Corporation.
#include "dpmsproc.h"
#endif
-extern int InitClientPrivates(ClientPtr client);
-
extern void Dispatch(void);
char *ConnectionInfo;
xConnSetupPrefix connSetupPrefix;
extern FontPtr defaultFont;
-extern int screenPrivateCount;
extern void InitProcVectors(void);
extern Bool CreateGCperDepthArray(void);
@@ -136,8 +133,6 @@ static
#endif
Bool CreateConnectionBlock(void);
-static void FreeScreen(ScreenPtr);
-
_X_EXPORT PaddingInfo PixmapWidthPaddingInfo[33];
int connBlockScreenStart;
@@ -372,8 +367,6 @@ main(int argc, char *argv[], char *envp[])
if (screenInfo.numVideoScreens < 0)
screenInfo.numVideoScreens = screenInfo.numScreens;
InitExtensions(argc, argv);
- if (!InitClientPrivates(serverClient))
- FatalError("failed to allocate serverClient devprivates");
for (i = 0; i < screenInfo.numScreens; i++)
{
ScreenPtr pScreen = screenInfo.screens[i];
@@ -472,7 +465,8 @@ main(int argc, char *argv[], char *envp[])
FreeGCperDepth(i);
FreeDefaultStipple(i);
(* screenInfo.screens[i]->CloseScreen)(i, screenInfo.screens[i]);
- FreeScreen(screenInfo.screens[i]);
+ dixFreePrivates(screenInfo.screens[i]->devPrivates);
+ xfree(screenInfo.screens[i]);
screenInfo.numScreens = i;
}
CloseDownEvents();
@@ -482,8 +476,7 @@ main(int argc, char *argv[], char *envp[])
FreeAuditTimer();
- dixFreePrivates(*DEVPRIV_PTR(serverClient));
- xfree(serverClient->devPrivates);
+ dixFreePrivates(serverClient->devPrivates);
serverClient->devPrivates = NULL;
if (dispatchException & DE_TERMINATE)
@@ -695,32 +688,9 @@ AddScreen(
if (!pScreen)
return -1;
- pScreen->devPrivates = (DevUnion *)xcalloc(sizeof(DevUnion),
- screenPrivateCount);
- if (!pScreen->devPrivates && screenPrivateCount)
- {
- xfree(pScreen);
- return -1;
- }
-
- /* must pre-allocate one private for the new devPrivates support */
- pScreen->WindowPrivateLen = 1;
- pScreen->WindowPrivateSizes = (unsigned *)xcalloc(1, sizeof(unsigned));
- pScreen->totalWindowSize = PadToLong(sizeof(WindowRec)) + sizeof(DevUnion);
- pScreen->GCPrivateLen = 1;
- pScreen->GCPrivateSizes = (unsigned *)xcalloc(1, sizeof(unsigned));
- pScreen->totalGCSize = PadToLong(sizeof(GC)) + sizeof(DevUnion);
- pScreen->PixmapPrivateLen = 1;
- pScreen->PixmapPrivateSizes = (unsigned *)xcalloc(1, sizeof(unsigned));
- pScreen->totalPixmapSize = BitmapBytePad(8 * (sizeof(PixmapRec) +
- sizeof(DevUnion)));
- if (!pScreen->WindowPrivateSizes || !pScreen->GCPrivateSizes ||
- !pScreen->PixmapPrivateSizes) {
- xfree(pScreen);
- return -1;
- }
-
+ pScreen->devPrivates = NULL;
pScreen->myNum = i;
+ pScreen->totalPixmapSize = BitmapBytePad(sizeof(PixmapRec)*8);
pScreen->ClipNotify = 0; /* for R4 ddx compatibility */
pScreen->CreateScreenResources = 0;
@@ -772,20 +742,10 @@ AddScreen(
screenInfo.numScreens++;
if (!(*pfnInit)(i, pScreen, argc, argv))
{
- FreeScreen(pScreen);
+ dixFreePrivates(pScreen->devPrivates);
+ xfree(pScreen);
screenInfo.numScreens--;
return -1;
}
return i;
}
-
-static void
-FreeScreen(ScreenPtr pScreen)
-{
- xfree(pScreen->WindowPrivateSizes);
- xfree(pScreen->GCPrivateSizes);
- xfree(pScreen->PixmapPrivateSizes);
- dixFreePrivates(*DEVPRIV_PTR(pScreen));
- xfree(pScreen->devPrivates);
- xfree(pScreen);
-}