summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTomas Carnecky <tom@dbservice.com>2008-08-04 23:06:08 +0300
committerDaniel Stone <daniel@fooishbar.org>2008-08-05 01:17:32 +0300
commit5532d63488ec45953ff7f925cfb4f87adb3b04a0 (patch)
tree13999b71862b50fcb6ace956f49ae7002ecfad56
parente882ee7056f370e0619d137b4ec3973ecb4e3479 (diff)
Redefine WindowTable as a fixed array
Instead of xalloc'ing it every server generation. The array is always the same size (MAXSCREENS), anyway.
-rw-r--r--Xext/mbufbf.c3
-rw-r--r--dix/events.c1
-rw-r--r--dix/globals.c2
-rw-r--r--dix/main.c7
-rw-r--r--hw/kdrive/src/kdrive.c1
-rw-r--r--hw/kdrive/src/kdrive.h3
-rw-r--r--hw/xfree86/dixmods/extmod/xf86vmode.c3
-rw-r--r--include/globals.h2
8 files changed, 6 insertions, 16 deletions
diff --git a/Xext/mbufbf.c b/Xext/mbufbf.c
index afa6177ab..e929ab5fd 100644
--- a/Xext/mbufbf.c
+++ b/Xext/mbufbf.c
@@ -47,6 +47,7 @@ in this Software without prior written authorization from The Open Group.
#include "gcstruct.h"
#include "inputstr.h"
#include "validate.h"
+#include "globals.h"
#include <sys/time.h>
#define _MULTIBUF_SERVER_ /* don't want Xlib structures */
@@ -199,8 +200,6 @@ static Bool bufChangeWindowAttributes();
static void bufClearToBackground();
static void bufCopyWindow();
-extern WindowPtr *WindowTable;
-
static Bool
bufMultibufferInit(pScreen, pMBScreen)
ScreenPtr pScreen;
diff --git a/dix/events.c b/dix/events.c
index d6b3ecb1f..f04433b65 100644
--- a/dix/events.c
+++ b/dix/events.c
@@ -150,7 +150,6 @@ typedef const char *string;
#endif
#ifdef XEVIE
-extern WindowPtr *WindowTable;
extern int xevieFlag;
extern int xevieClientIndex;
extern DeviceIntPtr xeviemouse;
diff --git a/dix/globals.c b/dix/globals.c
index 210c7849c..d3dd33119 100644
--- a/dix/globals.c
+++ b/dix/globals.c
@@ -83,7 +83,7 @@ _X_EXPORT ClientPtr serverClient;
_X_EXPORT int currentMaxClients; /* current size of clients array */
_X_EXPORT long maxBigRequestSize = MAX_BIG_REQUEST_SIZE;
-_X_EXPORT WindowPtr *WindowTable;
+_X_EXPORT WindowPtr WindowTable[MAXSCREENS];
_X_EXPORT unsigned long globalSerialNumber = 0;
_X_EXPORT unsigned long serverGeneration = 0;
diff --git a/dix/main.c b/dix/main.c
index ab6ca5728..c34bc8a3c 100644
--- a/dix/main.c
+++ b/dix/main.c
@@ -305,9 +305,6 @@ int main(int argc, char *argv[], char *envp[])
SetInputCheck(&alwaysCheckForInput[0], &alwaysCheckForInput[1]);
screenInfo.arraySize = MAXSCREENS;
screenInfo.numScreens = 0;
- WindowTable = (WindowPtr *)xalloc(MAXSCREENS * sizeof(WindowPtr));
- if (!WindowTable)
- FatalError("couldn't create root window table");
InitAtoms();
InitEvents();
@@ -417,7 +414,7 @@ int main(int argc, char *argv[], char *envp[])
config_fini();
- memset(WindowTable, 0, MAXSCREENS * sizeof(WindowPtr));
+ memset(WindowTable, 0, sizeof(WindowTable));
CloseDownDevices();
CloseDownEvents();
@@ -431,8 +428,6 @@ int main(int argc, char *argv[], char *envp[])
xfree(screenInfo.screens[i]);
screenInfo.numScreens = i;
}
- xfree(WindowTable);
- WindowTable = NULL;
FreeFonts();
FreeAuditTimer();
diff --git a/hw/kdrive/src/kdrive.c b/hw/kdrive/src/kdrive.c
index e31cc25d9..754b94291 100644
--- a/hw/kdrive/src/kdrive.c
+++ b/hw/kdrive/src/kdrive.c
@@ -93,7 +93,6 @@ static Bool kdCaughtSignal = FALSE;
*/
KdOsFuncs *kdOsFuncs;
-extern WindowPtr *WindowTable;
void
KdSetRootClip (ScreenPtr pScreen, BOOL enable)
diff --git a/hw/kdrive/src/kdrive.h b/hw/kdrive/src/kdrive.h
index e3878e223..3987cb00b 100644
--- a/hw/kdrive/src/kdrive.h
+++ b/hw/kdrive/src/kdrive.h
@@ -43,13 +43,12 @@
#include "fboverlay.h"
#include "shadow.h"
#include "randrstr.h"
+#include "globals.h"
#ifdef XKB
#include <X11/extensions/XKBstr.h>
#endif
-extern WindowPtr *WindowTable;
-
#define KD_DPMS_NORMAL 0
#define KD_DPMS_STANDBY 1
#define KD_DPMS_SUSPEND 2
diff --git a/hw/xfree86/dixmods/extmod/xf86vmode.c b/hw/xfree86/dixmods/extmod/xf86vmode.c
index 91d5865d1..559f18b64 100644
--- a/hw/xfree86/dixmods/extmod/xf86vmode.c
+++ b/hw/xfree86/dixmods/extmod/xf86vmode.c
@@ -48,6 +48,7 @@ from Kaleb S. KEITHLEY
#include "swaprep.h"
#include "xf86.h"
#include "vidmodeproc.h"
+#include "globals.h"
#define DEFAULT_XF86VIDMODE_VERBOSITY 3
@@ -122,8 +123,6 @@ static void SXF86VidModeNotifyEvent();
xXF86VidModeNotifyEvent * /* to */
);
-extern WindowPtr *WindowTable;
-
static RESTYPE EventType; /* resource type for event masks */
typedef struct _XF86VidModeEvent *XF86VidModeEventPtr;
diff --git a/include/globals.h b/include/globals.h
index a95096f81..607bc4805 100644
--- a/include/globals.h
+++ b/include/globals.h
@@ -20,7 +20,7 @@ extern int monitorResolution;
extern int defaultColorVisualClass;
extern Bool Must_have_memory;
-extern WindowPtr *WindowTable;
+extern WindowPtr WindowTable[MAXSCREENS];
extern int GrabInProgress;
extern Bool noTestExtensions;