diff options
78 files changed, 287 insertions, 146 deletions
diff --git a/Xext/geext.c b/Xext/geext.c index 171fda160..8de4e7cb1 100644 --- a/Xext/geext.c +++ b/Xext/geext.c @@ -40,7 +40,8 @@ int GEEventBase; int GEErrorBase; -DevPrivateKey GEClientPrivateKey = &GEClientPrivateKey; +static int GEClientPrivateKeyIndex; +DevPrivateKey GEClientPrivateKey = &GEClientPrivateKeyIndex; int GEEventType; /* The opcode for all GenericEvents will have. */ int RT_GECLIENT = 0; diff --git a/Xext/mbuf.c b/Xext/mbuf.c index 08b933433..a23a4fa36 100644 --- a/Xext/mbuf.c +++ b/Xext/mbuf.c @@ -61,8 +61,10 @@ in this Software without prior written authorization from The Open Group. static int MultibufferEventBase; static int MultibufferErrorBase; -static DevPrivateKey MultibufferScreenPrivKey = &MultibufferScreenPrivKey; -static DevPrivateKey MultibufferWindowPrivKey = &MultibufferWindowPrivKey; +static int MultibufferScreenPrivKeyIndex; +static DevPrivateKey MultibufferScreenPrivKey = &MultibufferScreenPrivKeyIndex; +static int MultibufferWindowPrivKeyIndex; +static DevPrivateKey MultibufferWindowPrivKey = &MultibufferWindowPrivKeyIndex; static void PerformDisplayRequest ( MultibuffersPtr * /* ppMultibuffers */, diff --git a/Xext/panoramiX.c b/Xext/panoramiX.c index 17f587b1e..22b51aa71 100644 --- a/Xext/panoramiX.c +++ b/Xext/panoramiX.c @@ -107,8 +107,10 @@ static void PanoramiXResetProc(ExtensionEntry*); int (* SavedProcVector[256]) (ClientPtr client) = { NULL, }; -static DevPrivateKey PanoramiXGCKey = &PanoramiXGCKey; -static DevPrivateKey PanoramiXScreenKey = &PanoramiXScreenKey; +static int PanoramiXGCKeyIndex; +static DevPrivateKey PanoramiXGCKey = &PanoramiXGCKeyIndex; +static int PanoramiXScreenKeyIndex; +static DevPrivateKey PanoramiXScreenKey = &PanoramiXScreenKeyIndex; typedef struct { DDXPointRec clipOrg; diff --git a/Xext/saver.c b/Xext/saver.c index d74495bfa..0bdcb8b94 100644 --- a/Xext/saver.c +++ b/Xext/saver.c @@ -228,7 +228,8 @@ MakeScreenPrivate ( ScreenPtr /* pScreen */ ); -static DevPrivateKey ScreenPrivateKey = &ScreenPrivateKey; +static int ScreenPrivateKeyIndex; +static DevPrivateKey ScreenPrivateKey = &ScreenPrivateKeyIndex; #define GetScreenPrivate(s) ((ScreenSaverScreenPrivatePtr) \ dixLookupPrivate(&(s)->devPrivates, ScreenPrivateKey)) diff --git a/Xext/security.c b/Xext/security.c index bd92600f6..e37906366 100644 --- a/Xext/security.c +++ b/Xext/security.c @@ -50,7 +50,8 @@ static RESTYPE RTEventClient; static CallbackListPtr SecurityValidateGroupCallback = NULL; /* Private state record */ -static DevPrivateKey stateKey = &stateKey; +static int stateKeyIndex; +static DevPrivateKey stateKey = &stateKeyIndex; /* This is what we store as client security state */ typedef struct { diff --git a/Xext/shm.c b/Xext/shm.c index 312b9d109..a48d2bd5b 100644 --- a/Xext/shm.c +++ b/Xext/shm.c @@ -139,7 +139,8 @@ static ShmDescPtr Shmsegs; static Bool sharedPixmaps; static ShmFuncsPtr shmFuncs[MAXSCREENS]; static DestroyPixmapProcPtr destroyPixmap[MAXSCREENS]; -static DevPrivateKey shmPixmapPrivate = &shmPixmapPrivate; +static int shmPixmapPrivateIndex; +static DevPrivateKey shmPixmapPrivate = &shmPixmapPrivateIndex; static ShmFuncs miFuncs = {NULL, NULL}; static ShmFuncs fbFuncs = {fbShmCreatePixmap, NULL}; diff --git a/Xext/xevie.c b/Xext/xevie.c index bbbf04524..292f20761 100644 --- a/Xext/xevie.c +++ b/Xext/xevie.c @@ -77,9 +77,11 @@ DeviceIntPtr xeviemouse = NULL; Mask xevieMask = 0; int xevieEventSent = 0; int xevieKBEventSent = 0; -static DevPrivateKey xevieDevicePrivateKey = &xevieDevicePrivateKey; static Bool xevieModifiersOn = FALSE; +static int xevieDevicePrivateKeyIndex; +static DevPrivateKey xevieDevicePrivateKey = &xevieDevicePrivateKeyIndex; + #define XEVIEINFO(dev) ((xevieDeviceInfoPtr) \ dixLookupPrivate(&(dev)->devPrivates, xevieDevicePrivateKey)) diff --git a/Xext/xselinux.c b/Xext/xselinux.c index a47df03c2..2a8be0b6d 100644 --- a/Xext/xselinux.c +++ b/Xext/xselinux.c @@ -62,9 +62,12 @@ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ /* private state keys */ -static DevPrivateKey subjectKey = &subjectKey; -static DevPrivateKey objectKey = &objectKey; -static DevPrivateKey dataKey = &dataKey; +static int subjectKeyIndex; +static DevPrivateKey subjectKey = &subjectKeyIndex; +static int objectKeyIndex; +static DevPrivateKey objectKey = &objectKeyIndex; +static int dataKeyIndex; +static DevPrivateKey dataKey = &dataKeyIndex; /* subject state (clients and devices only) */ typedef struct { diff --git a/Xext/xvmain.c b/Xext/xvmain.c index e92a248e8..fcca724b0 100644 --- a/Xext/xvmain.c +++ b/Xext/xvmain.c @@ -105,7 +105,8 @@ SOFTWARE. #endif #include "xvdisp.h" -static DevPrivateKey XvScreenKey = &XvScreenKey; +static int XvScreenKeyIndex; +static DevPrivateKey XvScreenKey = &XvScreenKeyIndex; unsigned long XvExtensionGeneration = 0; unsigned long XvScreenGeneration = 0; unsigned long XvResourceGeneration = 0; diff --git a/Xext/xvmc.c b/Xext/xvmc.c index dc1e7dd98..ad1b8abc0 100644 --- a/Xext/xvmc.c +++ b/Xext/xvmc.c @@ -34,7 +34,8 @@ #define DR_CLIENT_DRIVER_NAME_SIZE 48 #define DR_BUSID_SIZE 48 -static DevPrivateKey XvMCScreenKey = NULL; +static int XvMCScreenKeyIndex; +static DevPrivateKey XvMCScreenKey; unsigned long XvMCGeneration = 0; @@ -709,7 +710,7 @@ XvMCScreenInit(ScreenPtr pScreen, int num, XvMCAdaptorPtr pAdapt) { XvMCScreenPtr pScreenPriv; - XvMCScreenKey = &XvMCScreenKey; + XvMCScreenKey = &XvMCScreenKeyIndex; if(!(pScreenPriv = (XvMCScreenPtr)xalloc(sizeof(XvMCScreenRec)))) return BadAlloc; diff --git a/Xi/extinit.c b/Xi/extinit.c index cb1f3a435..d8714ba7c 100644 --- a/Xi/extinit.c +++ b/Xi/extinit.c @@ -352,7 +352,8 @@ Mask PropagateMask[MAX_DEVICES]; * */ -DevPrivateKey XIClientPrivateKey = &XIClientPrivateKey; +static int XIClientPrivateKeyIndex; +DevPrivateKey XIClientPrivateKey = &XIClientPrivateKeyIndex; static XExtensionVersion thisversion = { XI_Present, XI_2_Major, diff --git a/composite/compext.c b/composite/compext.c index 154f71909..c1544021c 100644 --- a/composite/compext.c +++ b/composite/compext.c @@ -51,7 +51,8 @@ #define SERVER_COMPOSITE_MINOR 4 static CARD8 CompositeReqCode; -static DevPrivateKey CompositeClientPrivateKey = &CompositeClientPrivateKey; +static int CompositeClientPrivateKeyIndex; +static DevPrivateKey CompositeClientPrivateKey = &CompositeClientPrivateKeyIndex; RESTYPE CompositeClientWindowType; RESTYPE CompositeClientSubwindowsType; RESTYPE CompositeClientOverlayType; diff --git a/composite/compinit.c b/composite/compinit.c index 7914a8d25..495188e59 100644 --- a/composite/compinit.c +++ b/composite/compinit.c @@ -46,9 +46,12 @@ #include "compint.h" -DevPrivateKey CompScreenPrivateKey = &CompScreenPrivateKey; -DevPrivateKey CompWindowPrivateKey = &CompWindowPrivateKey; -DevPrivateKey CompSubwindowsPrivateKey = &CompSubwindowsPrivateKey; +static int CompScreenPrivateKeyIndex; +DevPrivateKey CompScreenPrivateKey = &CompScreenPrivateKeyIndex; +static int CompWindowPrivateKeyIndex; +DevPrivateKey CompWindowPrivateKey = &CompWindowPrivateKeyIndex; +static int CompSubwindowsPrivateKeyIndex; +DevPrivateKey CompSubwindowsPrivateKey = &CompSubwindowsPrivateKeyIndex; static Bool diff --git a/damageext/damageext.c b/damageext/damageext.c index 7dd328aba..4d91580ca 100755 --- a/damageext/damageext.c +++ b/damageext/damageext.c @@ -29,10 +29,12 @@ static unsigned char DamageReqCode; static int DamageEventBase; static int DamageErrorBase; -static DevPrivateKey DamageClientPrivateKey = &DamageClientPrivateKey; static RESTYPE DamageExtType; static RESTYPE DamageExtWinType; +static int DamageClientPrivateKeyIndex; +static DevPrivateKey DamageClientPrivateKey = &DamageClientPrivateKeyIndex; + /* Version of the damage extension supported by the server, as opposed to the * DAMAGE_* defines from damageproto for what version the proto header * supports. @@ -62,8 +62,10 @@ static Bool (* DbeInitFunct[MAXSCREENS])(); /* pScreen, pDbeScreenPriv */ /* These are static globals copied to DBE's screen private for use by DDX */ -static DevPrivateKey dbeScreenPrivKey = &dbeScreenPrivKey; -static DevPrivateKey dbeWindowPrivKey = &dbeWindowPrivKey; +static int dbeScreenPrivKeyIndex; +static DevPrivateKey dbeScreenPrivKey = &dbeScreenPrivKeyIndex; +static int dbeWindowPrivKeyIndex; +static DevPrivateKey dbeWindowPrivKey = &dbeWindowPrivKeyIndex; /* These are static globals copied to DBE's screen private for use by DDX */ static RESTYPE dbeDrawableResType; diff --git a/dbe/midbe.c b/dbe/midbe.c index c02e591d0..f8a3acc87 100644 --- a/dbe/midbe.c +++ b/dbe/midbe.c @@ -60,11 +60,14 @@ #include <stdio.h> -static DevPrivateKey miDbeWindowPrivPrivKey = &miDbeWindowPrivPrivKey; +static int miDbeWindowPrivPrivKeyIndex; +static DevPrivateKey miDbeWindowPrivPrivKey = &miDbeWindowPrivPrivKeyIndex; static RESTYPE dbeDrawableResType; static RESTYPE dbeWindowPrivResType; -static DevPrivateKey dbeScreenPrivKey = &dbeScreenPrivKey; -static DevPrivateKey dbeWindowPrivKey = &dbeWindowPrivKey; +static int dbeScreenPrivKeyIndex; +static DevPrivateKey dbeScreenPrivKey = &dbeScreenPrivKeyIndex; +static int dbeWindowPrivKeyIndex; +static DevPrivateKey dbeWindowPrivKey = &dbeWindowPrivKeyIndex; /****************************************************************************** diff --git a/dix/devices.c b/dix/devices.c index 2225e08a7..7e1ce3513 100644 --- a/dix/devices.c +++ b/dix/devices.c @@ -91,9 +91,11 @@ SOFTWARE. * This file handles input device-related stuff. */ -DevPrivateKey CoreDevicePrivateKey = &CoreDevicePrivateKey; +static int CoreDevicePrivateKeyIndex; +DevPrivateKey CoreDevicePrivateKey = &CoreDevicePrivateKeyIndex; /* Used to sture classes currently not in use by an MD */ -DevPrivateKey UnusedClassesPrivateKey = &UnusedClassesPrivateKey; +static int UnusedClassesPrivateKeyIndex; +DevPrivateKey UnusedClassesPrivateKey = &UnusedClassesPrivateKeyIndex; /** diff --git a/dix/events.c b/dix/events.c index 7a79d292b..2947ff1aa 100644 --- a/dix/events.c +++ b/dix/events.c @@ -1504,7 +1504,8 @@ CheckGrabForSyncs(DeviceIntPtr thisDev, Bool thisMode, Bool otherMode) } /* Only ever used if a grab is called on an attached slave device. */ -static DevPrivateKey GrabPrivateKey = &GrabPrivateKey; +static int GrabPrivateKeyIndex; +static DevPrivateKey GrabPrivateKey = &GrabPrivateKeyIndex; typedef struct _GrabMemoryRec { DeviceIntPtr oldmaster; } GrabMemoryRec, *GrabMemoryPtr; diff --git a/dix/window.c b/dix/window.c index 9bcf546aa..b588f4466 100644 --- a/dix/window.c +++ b/dix/window.c @@ -154,7 +154,8 @@ _X_EXPORT int screenIsSaved = SCREEN_SAVER_OFF; _X_EXPORT ScreenSaverStuffRec savedScreenInfo[MAXSCREENS]; -_X_EXPORT DevPrivateKey FocusPrivatesKey = &FocusPrivatesKey; +static int FocusPrivatesKeyIndex; +_X_EXPORT DevPrivateKey FocusPrivatesKey = &FocusPrivatesKeyIndex; static Bool TileScreenSaver(int i, int kind); @@ -38,8 +38,10 @@ #include "exa.h" #include "cw.h" -DevPrivateKey exaScreenPrivateKey = &exaScreenPrivateKey; -DevPrivateKey exaPixmapPrivateKey = &exaPixmapPrivateKey; +static int exaScreenPrivateKeyIndex; +DevPrivateKey exaScreenPrivateKey = &exaScreenPrivateKeyIndex; +static int exaPixmapPrivateKeyIndex; +DevPrivateKey exaPixmapPrivateKey = &exaPixmapPrivateKeyIndex; static _X_INLINE void* ExaGetPixmapAddress(PixmapPtr p) diff --git a/fb/fballpriv.c b/fb/fballpriv.c index 2e77289bb..c40796c11 100644 --- a/fb/fballpriv.c +++ b/fb/fballpriv.c @@ -27,18 +27,23 @@ #include "fb.h" #ifdef FB_SCREEN_PRIVATE -static DevPrivateKey fbScreenPrivateKey = &fbScreenPrivateKey; +static int fbScreenPrivateKeyIndex; +static DevPrivateKey fbScreenPrivateKey = &fbScreenPrivateKeyIndex; DevPrivateKey fbGetScreenPrivateKey(void) { return fbScreenPrivateKey; } #endif -static DevPrivateKey fbGCPrivateKey = &fbGCPrivateKey; + +static int fbGCPrivateKeyIndex; +static DevPrivateKey fbGCPrivateKey = &fbGCPrivateKeyIndex; DevPrivateKey fbGetGCPrivateKey(void) { return fbGCPrivateKey; } -static DevPrivateKey fbWinPrivateKey = &fbWinPrivateKey; + +static int fbWinPrivateKeyIndex; +static DevPrivateKey fbWinPrivateKey = &fbWinPrivateKeyIndex; DevPrivateKey fbGetWinPrivateKey(void) { return fbWinPrivateKey; diff --git a/fb/fboverlay.c b/fb/fboverlay.c index f9f7c52a3..1432cb6f0 100644 --- a/fb/fboverlay.c +++ b/fb/fboverlay.c @@ -33,7 +33,8 @@ #include "fboverlay.h" #include "shmint.h" -static DevPrivateKey fbOverlayScreenPrivateKey = &fbOverlayScreenPrivateKey; +static int fbOverlayScreenPrivateKeyIndex; +static DevPrivateKey fbOverlayScreenPrivateKey = &fbOverlayScreenPrivateKeyIndex; DevPrivateKey fbOverlayGetScreenPrivateKey(void) { diff --git a/glx/glxext.c b/glx/glxext.c index 6ba404fb1..c2171a823 100644 --- a/glx/glxext.c +++ b/glx/glxext.c @@ -54,7 +54,8 @@ RESTYPE __glXSwapBarrierRes; */ xGLXSingleReply __glXReply; -static DevPrivateKey glxClientPrivateKey = &glxClientPrivateKey; +static int glxClientPrivateKeyIndex; +static DevPrivateKey glxClientPrivateKey = &glxClientPrivateKeyIndex; /* ** Client that called into GLX dispatch. diff --git a/glx/glxscreens.c b/glx/glxscreens.c index 505f79754..d928bdfb8 100644 --- a/glx/glxscreens.c +++ b/glx/glxscreens.c @@ -48,7 +48,8 @@ #include "glxutil.h" #include "glxext.h" -static DevPrivateKey glxScreenPrivateKey = &glxScreenPrivateKey; +static int glxScreenPrivateKeyIndex; +static DevPrivateKey glxScreenPrivateKey = &glxScreenPrivateKeyIndex; const char GLServerVersion[] = "1.4"; static const char GLServerExtensions[] = diff --git a/hw/dmx/dmxscrinit.c b/hw/dmx/dmxscrinit.c index 0e49e9677..736075094 100644 --- a/hw/dmx/dmxscrinit.c +++ b/hw/dmx/dmxscrinit.c @@ -67,15 +67,22 @@ static Bool dmxSaveScreen(ScreenPtr pScreen, int what); static unsigned long dmxGeneration; static unsigned long *dmxCursorGeneration; +static int dmxGCPrivateKeyIndex; DevPrivateKey dmxGCPrivateKey = &dmxGCPrivateKey; /**< Private index for GCs */ -DevPrivateKey dmxWinPrivateKey = &dmxWinPrivateKey; /**< Private index for Windows */ -DevPrivateKey dmxPixPrivateKey = &dmxPixPrivateKey; /**< Private index for Pixmaps */ +static int dmxWinPrivateKeyIndex; +DevPrivateKey dmxWinPrivateKey = &dmxWinPrivateKeyIndex; /**< Private index for Windows */ +static int dmxPixPrivateKeyIndex; +DevPrivateKey dmxPixPrivateKey = &dmxPixPrivateKeyIndex; /**< Private index for Pixmaps */ int dmxFontPrivateIndex; /**< Private index for Fonts */ -DevPrivateKey dmxScreenPrivateKey = &dmxScreenPrivateKey; /**< Private index for Screens */ -DevPrivateKey dmxColormapPrivateKey = &dmxColormapPrivateKey; /**< Private index for Colormaps */ +static int dmxScreenPrivateKeyIndex; +DevPrivateKey dmxScreenPrivateKey = &dmxScreenPrivateKeyIndex; /**< Private index for Screens */ +static int dmxColormapPrivateKeyIndex; +DevPrivateKey dmxColormapPrivateKey = &dmxColormapPrivateKeyIndex; /**< Private index for Colormaps */ #ifdef RENDER -DevPrivateKey dmxPictPrivateKey = &dmxPictPrivateKey; /**< Private index for Picts */ -DevPrivateKey dmxGlyphSetPrivateKey = &dmxGlyphSetPrivateKey; /**< Private index for GlyphSets */ +static int dmxPictPrivateKeyIndex; +DevPrivateKey dmxPictPrivateKey = &dmxPictPrivateKeyIndex; /**< Private index for Picts */ +static int dmxGlyphSetPrivateKeyIndex; +DevPrivateKey dmxGlyphSetPrivateKey = &dmxGlyphSetPrivateKeyIndex; /**< Private index for GlyphSets */ #endif /** Initialize the parts of screen \a idx that require access to the diff --git a/hw/kdrive/ephyr/ephyrdriext.c b/hw/kdrive/ephyr/ephyrdriext.c index 05cecf478..a906ad170 100644 --- a/hw/kdrive/ephyr/ephyrdriext.c +++ b/hw/kdrive/ephyr/ephyrdriext.c @@ -111,8 +111,10 @@ static Bool findWindowPairFromLocal (WindowPtr a_local, static unsigned char DRIReqCode = 0; -static DevPrivateKey ephyrDRIWindowKey = &ephyrDRIWindowKey; -static DevPrivateKey ephyrDRIScreenKey = &ephyrDRIScreenKey; +static int ephyrDRIWindowKeyIndex; +static DevPrivateKey ephyrDRIWindowKey = &ephyrDRIWindowKeyIndex; +static int ephyrDRIScreenKeyIndex; +static DevPrivateKey ephyrDRIScreenKey = &ephyrDRIScreenKeyIndex; #define GET_EPHYR_DRI_WINDOW_PRIV(win) ((EphyrDRIWindowPrivPtr) \ dixLookupPrivate(&(win)->devPrivates, ephyrDRIWindowKey)) diff --git a/hw/kdrive/src/kdrive.c b/hw/kdrive/src/kdrive.c index 9e27840b7..1478a944d 100644 --- a/hw/kdrive/src/kdrive.c +++ b/hw/kdrive/src/kdrive.c @@ -67,7 +67,8 @@ KdDepths kdDepths[] = { #define KD_DEFAULT_BUTTONS 5 -DevPrivateKey kdScreenPrivateKey = &kdScreenPrivateKey; +static int kdScreenPrivateKeyIndex; +DevPrivateKey kdScreenPrivateKey = &kdScreenPrivateKeyIndex; unsigned long kdGeneration; Bool kdVideoTest; diff --git a/hw/kdrive/src/kxv.c b/hw/kdrive/src/kxv.c index 83ca3935f..9a74654af 100644 --- a/hw/kdrive/src/kxv.c +++ b/hw/kdrive/src/kxv.c @@ -103,9 +103,10 @@ static void KdXVClipNotify(WindowPtr pWin, int dx, int dy); /* misc */ static Bool KdXVInitAdaptors(ScreenPtr, KdVideoAdaptorPtr*, int); - -DevPrivateKey KdXVWindowKey = &KdXVWindowKey; -DevPrivateKey KdXvScreenKey = &KdXvScreenKey; +static int KdXVWindowKeyIndex; +DevPrivateKey KdXVWindowKey = &KdXVWindowKeyIndex; +static int KdXvScreenKeyIndex; +DevPrivateKey KdXvScreenKey = &KdXvScreenKeyIndex; static unsigned long KdXVGeneration = 0; static unsigned long PortResource = 0; diff --git a/hw/xfree86/common/xf86DGA.c b/hw/xfree86/common/xf86DGA.c index a7e24a65f..4dd31d899 100644 --- a/hw/xfree86/common/xf86DGA.c +++ b/hw/xfree86/common/xf86DGA.c @@ -50,7 +50,8 @@ #include "mi.h" -static DevPrivateKey DGAScreenKey = NULL; +static int DGAScreenKeyIndex; +static DevPrivateKey DGAScreenKey; static int mieq_installed = 0; static Bool DGACloseScreen(int i, ScreenPtr pScreen); @@ -116,7 +117,7 @@ DGAInit( if(!modes || num <= 0) return FALSE; - DGAScreenKey = &DGAScreenKey; + DGAScreenKey = &DGAScreenKeyIndex; if(!(pScreenPriv = (DGAScreenPtr)xalloc(sizeof(DGAScreenRec)))) return FALSE; diff --git a/hw/xfree86/common/xf86DPMS.c b/hw/xfree86/common/xf86DPMS.c index 4fb901aae..5ee5e2451 100644 --- a/hw/xfree86/common/xf86DPMS.c +++ b/hw/xfree86/common/xf86DPMS.c @@ -47,7 +47,8 @@ #ifdef DPMSExtension -static DevPrivateKey DPMSKey = NULL; +static int DPMSKeyIndex; +static DevPrivateKey DPMSKey; static Bool DPMSClose(int i, ScreenPtr pScreen); static int DPMSCount = 0; #endif @@ -62,7 +63,7 @@ xf86DPMSInit(ScreenPtr pScreen, DPMSSetProcPtr set, int flags) pointer DPMSOpt; MessageType enabled_from = X_INFO; - DPMSKey = &DPMSKey; + DPMSKey = &DPMSKeyIndex; if (DPMSDisabledSwitch) DPMSEnabled = FALSE; diff --git a/hw/xfree86/common/xf86Globals.c b/hw/xfree86/common/xf86Globals.c index 23626296a..dffe98863 100644 --- a/hw/xfree86/common/xf86Globals.c +++ b/hw/xfree86/common/xf86Globals.c @@ -47,10 +47,13 @@ /* Globals that video drivers may access */ /* Index into pScreen.devPrivates */ -DevPrivateKey xf86CreateRootWindowKey = &xf86CreateRootWindowKey; +static int xf86CreateRootWindowKeyIndex; +DevPrivateKey xf86CreateRootWindowKey = &xf86CreateRootWindowKeyIndex; /* Index of ScrnInfo in pScreen.devPrivates */ -_X_EXPORT DevPrivateKey xf86ScreenKey = &xf86ScreenKey; -_X_EXPORT DevPrivateKey xf86PixmapKey = &xf86PixmapKey; +static int xf86ScreenKeyIndex; +_X_EXPORT DevPrivateKey xf86ScreenKey = &xf86ScreenKeyIndex; +static int xf86PixmapKeyIndex; +_X_EXPORT DevPrivateKey xf86PixmapKey = &xf86PixmapKeyIndex; _X_EXPORT ScrnInfoPtr *xf86Screens = NULL; /* List of ScrnInfos */ _X_EXPORT const unsigned char byte_reversed[256] = { diff --git a/hw/xfree86/common/xf86RAC.c b/hw/xfree86/common/xf86RAC.c index 8215f9827..24d29e445 100644 --- a/hw/xfree86/common/xf86RAC.c +++ b/hw/xfree86/common/xf86RAC.c @@ -256,8 +256,10 @@ static miPointerSpriteFuncRec RACSpriteFuncs = { RACSpriteMoveCursor }; -static DevPrivateKey RACScreenKey = &RACScreenKey; -static DevPrivateKey RACGCKey = &RACGCKey; +static int RACScreenKeyIndex; +static DevPrivateKey RACScreenKey = &RACScreenKeyIndex; +static int RACGCKeyIndex; +static DevPrivateKey RACGCKey = &RACGCKeyIndex; Bool diff --git a/hw/xfree86/common/xf86RandR.c b/hw/xfree86/common/xf86RandR.c index 10ec37070..847191475 100644 --- a/hw/xfree86/common/xf86RandR.c +++ b/hw/xfree86/common/xf86RandR.c @@ -46,7 +46,8 @@ typedef struct _xf86RandRInfo { Rotation rotation; } XF86RandRInfoRec, *XF86RandRInfoPtr; -static DevPrivateKey xf86RandRKey = NULL; +static int xf86RandRKeyIndex; +static DevPrivateKey xf86RandRKey; #define XF86RANDRINFO(p) ((XF86RandRInfoPtr)dixLookupPrivate(&(p)->devPrivates, xf86RandRKey)) @@ -423,7 +424,7 @@ xf86RandRInit (ScreenPtr pScreen) return TRUE; #endif - xf86RandRKey = &xf86RandRKey; + xf86RandRKey = &xf86RandRKeyIndex; randrp = xalloc (sizeof (XF86RandRInfoRec)); if (!randrp) diff --git a/hw/xfree86/common/xf86VidMode.c b/hw/xfree86/common/xf86VidMode.c index 9260bb57b..24fccd31b 100644 --- a/hw/xfree86/common/xf86VidMode.c +++ b/hw/xfree86/common/xf86VidMode.c @@ -47,7 +47,8 @@ #include "vidmodeproc.h" #include "xf86cmap.h" -static DevPrivateKey VidModeKey = NULL; +static int VidModeKeyIndex; +static DevPrivateKey VidModeKey; static int VidModeCount = 0; static Bool VidModeClose(int i, ScreenPtr pScreen); @@ -72,7 +73,7 @@ VidModeExtensionInit(ScreenPtr pScreen) return FALSE; } - VidModeKey = &VidModeKey; + VidModeKey = &VidModeKeyIndex; if (!dixSetPrivate(&pScreen->devPrivates, VidModeKey, xcalloc(sizeof(VidModeRec), 1))) { diff --git a/hw/xfree86/common/xf86cmap.c b/hw/xfree86/common/xf86cmap.c index 8ae193a52..e57844764 100644 --- a/hw/xfree86/common/xf86cmap.c +++ b/hw/xfree86/common/xf86cmap.c @@ -101,8 +101,10 @@ typedef struct { int overscan; } CMapColormapRec, *CMapColormapPtr; -static DevPrivateKey CMapScreenKey = NULL; -static DevPrivateKey CMapColormapKey = &CMapColormapKey; +static int CMapScreenKeyIndex; +static DevPrivateKey CMapScreenKey; +static int CMapColormapKeyIndex; +static DevPrivateKey CMapColormapKey = &CMapColormapKeyIndex; static void CMapInstallColormap(ColormapPtr); static void CMapStoreColors(ColormapPtr, int, xColorItem *); @@ -142,7 +144,7 @@ _X_EXPORT Bool xf86HandleColormaps( if(!maxColors || !sigRGBbits || !loadPalette) return FALSE; - CMapScreenKey = &CMapScreenKey; + CMapScreenKey = &CMapScreenKeyIndex; elements = 1 << sigRGBbits; diff --git a/hw/xfree86/common/xf86fbman.c b/hw/xfree86/common/xf86fbman.c index 9fd2e6c70..5471c58f0 100644 --- a/hw/xfree86/common/xf86fbman.c +++ b/hw/xfree86/common/xf86fbman.c @@ -42,14 +42,15 @@ #define DEBUG */ -static DevPrivateKey xf86FBManagerKey = NULL; +static int xf86FBManagerKeyIndex; +static DevPrivateKey xf86FBManagerKey; _X_EXPORT Bool xf86RegisterOffscreenManager( ScreenPtr pScreen, FBManagerFuncsPtr funcs ){ - xf86FBManagerKey = &xf86FBManagerKey; + xf86FBManagerKey = &xf86FBManagerKeyIndex; dixSetPrivate(&pScreen->devPrivates, xf86FBManagerKey, funcs); return TRUE; @@ -269,7 +270,8 @@ xf86PurgeUnlockedOffscreenAreas(ScreenPtr pScreen) \************************************************************/ -static DevPrivateKey xf86FBScreenKey = &xf86FBScreenKey; +static int xf86FBScreenKeyIndex; +static DevPrivateKey xf86FBScreenKey = &xf86FBScreenKeyIndex; typedef struct _FBLink { FBArea area; diff --git a/hw/xfree86/common/xf86sbusBus.c b/hw/xfree86/common/xf86sbusBus.c index 63d1cb31c..af2b14539 100644 --- a/hw/xfree86/common/xf86sbusBus.c +++ b/hw/xfree86/common/xf86sbusBus.c @@ -602,7 +602,8 @@ xf86SbusUseBuiltinMode(ScrnInfoPtr pScrn, sbusDevicePtr psdp) pScrn->virtualY = psdp->height; } -static DevPrivateKey sbusPaletteKey = &sbusPaletteKey; +static sbusPaletteKeyIndex; +static DevPrivateKey sbusPaletteKey = &sbusPaletteKeyIndex; typedef struct _sbusCmap { sbusDevicePtr psdp; CloseScreenProcPtr CloseScreen; diff --git a/hw/xfree86/common/xf86xv.c b/hw/xfree86/common/xf86xv.c index 7483e20d2..b263f9bd3 100644 --- a/hw/xfree86/common/xf86xv.c +++ b/hw/xfree86/common/xf86xv.c @@ -110,8 +110,10 @@ static void xf86XVAdjustFrame(int index, int x, int y, int flags); static Bool xf86XVInitAdaptors(ScreenPtr, XF86VideoAdaptorPtr*, int); -static DevPrivateKey XF86XVWindowKey = &XF86XVWindowKey; -DevPrivateKey XF86XvScreenKey; +static int XF86XVWindowKeyIndex; +static DevPrivateKey XF86XVWindowKey = &XF86XVWindowKeyIndex; +static int XF86XvScreenKeyIndex; +DevPrivateKey XF86XvScreenKey = &XF86XvScreenKeyIndex; static unsigned long PortResource = 0; DevPrivateKey (*XvGetScreenKeyProc)(void) = NULL; diff --git a/hw/xfree86/common/xf86xvmc.c b/hw/xfree86/common/xf86xvmc.c index 05267a240..41ef0a0ca 100644 --- a/hw/xfree86/common/xf86xvmc.c +++ b/hw/xfree86/common/xf86xvmc.c @@ -56,7 +56,8 @@ typedef struct { XvMCAdaptorPtr dixinfo; } xf86XvMCScreenRec, *xf86XvMCScreenPtr; -static DevPrivateKey XF86XvMCScreenKey = &XF86XvMCScreenKey; +static int XF86XvMCScreenKeyIndex; +static DevPrivateKey XF86XvMCScreenKey = &XF86XvMCScreenKeyIndex; #define XF86XVMC_GET_PRIVATE(pScreen) (xf86XvMCScreenPtr) \ dixLookupPrivate(&(pScreen)->devPrivates, XF86XvMCScreenKey) diff --git a/hw/xfree86/dixmods/extmod/xf86dga2.c b/hw/xfree86/dixmods/extmod/xf86dga2.c index 295e05e9e..c12178f56 100644 --- a/hw/xfree86/dixmods/extmod/xf86dga2.c +++ b/hw/xfree86/dixmods/extmod/xf86dga2.c @@ -62,7 +62,8 @@ unsigned char DGAReqCode = 0; int DGAErrorBase; int DGAEventBase; -static DevPrivateKey DGAClientPrivateKey = &DGAClientPrivateKey; +static int DGAClientPrivateKeyIndex; +static DevPrivateKey DGAClientPrivateKey = &DGAClientPrivateKeyIndex; static int DGACallbackRefCount = 0; /* This holds the client's version information */ diff --git a/hw/xfree86/dixmods/extmod/xf86vmode.c b/hw/xfree86/dixmods/extmod/xf86vmode.c index 559f18b64..6485a0461 100644 --- a/hw/xfree86/dixmods/extmod/xf86vmode.c +++ b/hw/xfree86/dixmods/extmod/xf86vmode.c @@ -53,7 +53,8 @@ from Kaleb S. KEITHLEY #define DEFAULT_XF86VIDMODE_VERBOSITY 3 static int VidModeErrorBase; -static DevPrivateKey VidModeClientPrivateKey = &VidModeClientPrivateKey; +static int VidModeClientPrivateKeyIndex; +static DevPrivateKey VidModeClientPrivateKey = &VidModeClientPrivateKeyIndex; /* This holds the client's version information */ typedef struct { @@ -141,8 +142,9 @@ typedef struct _XF86VidModeScreenPrivate { XF86VidModeEventPtr events; Bool hasWindow; } XF86VidModeScreenPrivateRec, *XF86VidModeScreenPrivatePtr; - -static DevPrivateKey ScreenPrivateKey = &ScreenPrivateKey; + +static int ScreenPrivateKeyIndex; +static DevPrivateKey ScreenPrivateKey = &ScreenPrivateKeyIndex; #define GetScreenPrivate(s) ((ScreenSaverScreenPrivatePtr) \ dixLookupPrivate(&(s)->devPrivates, ScreenPrivateKey)) diff --git a/hw/xfree86/dri/dri.c b/hw/xfree86/dri/dri.c index ac40e0fe0..d2599a9a8 100644 --- a/hw/xfree86/dri/dri.c +++ b/hw/xfree86/dri/dri.c @@ -79,8 +79,10 @@ extern Bool noPanoramiXExtension; #endif static int DRIEntPrivIndex = -1; -static DevPrivateKey DRIScreenPrivKey = &DRIScreenPrivKey; -static DevPrivateKey DRIWindowPrivKey = &DRIWindowPrivKey; +static int DRIScreenPrivKeyIndex; +static DevPrivateKey DRIScreenPrivKey = &DRIScreenPrivKeyIndex; +static int DRIWindowPrivKeyIndex; +static DevPrivateKey DRIWindowPrivKey = &DRIWindowPrivKeyIndex; static unsigned long DRIGeneration = 0; static unsigned int DRIDrawableValidationStamp = 0; @@ -343,7 +345,6 @@ DRIScreenInit(ScreenPtr pScreen, DRIInfoPtr pDRIInfo, int *pDRMFD) pDRIEntPriv = DRI_ENT_PRIV(pScrn); - DRIScreenPrivKey = &DRIScreenPrivKey; if (DRIGeneration != serverGeneration) DRIGeneration = serverGeneration; diff --git a/hw/xfree86/dri2/dri2.c b/hw/xfree86/dri2/dri2.c index 74aef7196..a5aef9135 100644 --- a/hw/xfree86/dri2/dri2.c +++ b/hw/xfree86/dri2/dri2.c @@ -45,9 +45,12 @@ #include "xf86.h" -static DevPrivateKey dri2ScreenPrivateKey = &dri2ScreenPrivateKey; -static DevPrivateKey dri2WindowPrivateKey = &dri2WindowPrivateKey; -static DevPrivateKey dri2PixmapPrivateKey = &dri2PixmapPrivateKey; +static int dri2ScreenPrivateKeyIndex; +static DevPrivateKey dri2ScreenPrivateKey = &dri2ScreenPrivateKeyIndex; +static int dri2WindowPrivateKeyIndex; +static DevPrivateKey dri2WindowPrivateKey = &dri2WindowPrivateKeyIndex; +static int dri2PixmapPrivateKeyIndex; +static DevPrivateKey dri2PixmapPrivateKey = &dri2PixmapPrivateKeyIndex; typedef struct _DRI2DrawablePriv { unsigned int refCount; diff --git a/hw/xfree86/exa/examodule.c b/hw/xfree86/exa/examodule.c index 4a8d8f26a..601288c73 100644 --- a/hw/xfree86/exa/examodule.c +++ b/hw/xfree86/exa/examodule.c @@ -42,7 +42,8 @@ typedef struct _ExaXorgScreenPrivRec { OptionInfoPtr options; } ExaXorgScreenPrivRec, *ExaXorgScreenPrivPtr; -static DevPrivateKey exaXorgScreenPrivateKey = &exaXorgScreenPrivateKey; +static int exaXorgScreenPrivateKeyIndex; +static DevPrivateKey exaXorgScreenPrivateKey = &exaXorgScreenPrivateKeyIndex; typedef enum { EXAOPT_MIGRATION_HEURISTIC, diff --git a/hw/xfree86/modes/xf86RandR12.c b/hw/xfree86/modes/xf86RandR12.c index ac0b438d3..2ae8ea776 100644 --- a/hw/xfree86/modes/xf86RandR12.c +++ b/hw/xfree86/modes/xf86RandR12.c @@ -63,6 +63,7 @@ static Bool xf86RandR12CreateScreenResources12 (ScreenPtr pScreen); static int xf86RandR12Generation; #if XORG_VERSION_CURRENT < XORG_VERSION_NUMERIC(7,0,0,0,0) +static int xf86RandR12KeyIndex; static DevPrivateKey xf86RandR12Key; #define XF86RANDRINFO(p) ((XF86RandRInfoPtr) \ dixLookupPrivate(&(p)->devPrivates, xf86RandR12Key)) @@ -499,7 +500,7 @@ xf86RandR12Init (ScreenPtr pScreen) xf86RandR12Generation = serverGeneration; #if XORG_VERSION_CURRENT < XORG_VERSION_NUMERIC(7,0,0,0,0) - xf86RandR12Key = &xf86RandR12Key; + xf86RandR12Key = &xf86RandR12KeyIndex; #else xf86RandR12Index = AllocateScreenPrivateIndex(); #endif diff --git a/hw/xfree86/ramdac/xf86Cursor.c b/hw/xfree86/ramdac/xf86Cursor.c index be4fb908e..592eaadd8 100644 --- a/hw/xfree86/ramdac/xf86Cursor.c +++ b/hw/xfree86/ramdac/xf86Cursor.c @@ -18,7 +18,8 @@ #include "inputstr.h" extern InputInfo inputInfo; -DevPrivateKey xf86CursorScreenKey = &xf86CursorScreenKey; +static int xf86CursorScreenKeyIndex; +DevPrivateKey xf86CursorScreenKey = &xf86CursorScreenKeyIndex; /* sprite functions */ diff --git a/hw/xfree86/shadowfb/shadow.c b/hw/xfree86/shadowfb/shadow.c index 74beefb67..ff775efbd 100644 --- a/hw/xfree86/shadowfb/shadow.c +++ b/hw/xfree86/shadowfb/shadow.c @@ -94,8 +94,10 @@ typedef struct { } ShadowGCRec, *ShadowGCPtr; -static DevPrivateKey ShadowScreenKey = &ShadowScreenKey; -static DevPrivateKey ShadowGCKey = &ShadowGCKey; +static int ShadowScreenKeyIndex; +static DevPrivateKey ShadowScreenKey = &ShadowScreenKeyIndex; +static int ShadowGCKeyIndex; +static DevPrivateKey ShadowGCKey = &ShadowGCKeyIndex; #define GET_SCREEN_PRIVATE(pScreen) \ (ShadowScreenPtr)dixLookupPrivate(&(pScreen)->devPrivates, ShadowScreenKey) diff --git a/hw/xfree86/xaa/xaaInit.c b/hw/xfree86/xaa/xaaInit.c index 22a35a0a0..deb198946 100644 --- a/hw/xfree86/xaa/xaaInit.c +++ b/hw/xfree86/xaa/xaaInit.c @@ -39,9 +39,12 @@ static int XAASetDGAMode(int index, int num, DGADevicePtr devRet); static void XAAEnableDisableFBAccess (int index, Bool enable); static Bool XAAChangeWindowAttributes (WindowPtr pWin, unsigned long mask); -static DevPrivateKey XAAScreenKey = &XAAScreenKey; -static DevPrivateKey XAAGCKey = &XAAGCKey; -static DevPrivateKey XAAPixmapKey = &XAAPixmapKey; +static int XAAScreenKeyIndex; +static DevPrivateKey XAAScreenKey = &XAAScreenKeyIndex; +static int XAAGCKeyIndex; +static DevPrivateKey XAAGCKey = &XAAGCKeyIndex; +static int XAAPixmapKeyIndex; +static DevPrivateKey XAAPixmapKey = &XAAPixmapKeyIndex; DevPrivateKey XAAGetScreenKey(void) { return XAAScreenKey; diff --git a/hw/xfree86/xaa/xaaOverlayDF.c b/hw/xfree86/xaa/xaaOverlayDF.c index 64ca998ee..8db816e1e 100644 --- a/hw/xfree86/xaa/xaaOverlayDF.c +++ b/hw/xfree86/xaa/xaaOverlayDF.c @@ -151,7 +151,8 @@ typedef struct { int (*TiledFillChooser)(GCPtr); } XAAOverlayRec, *XAAOverlayPtr; -static DevPrivateKey XAAOverlayKey = &XAAOverlayKey; +static int XAAOverlayKeyIndex; +static DevPrivateKey XAAOverlayKey = &XAAOverlayKeyIndex; #define GET_OVERLAY_PRIV(pScreen) \ (XAAOverlayPtr)dixLookupPrivate(&(pScreen)->devPrivates, XAAOverlayKey) diff --git a/hw/xfree86/xaa/xaaStateChange.c b/hw/xfree86/xaa/xaaStateChange.c index 443bda628..57d8aa318 100644 --- a/hw/xfree86/xaa/xaaStateChange.c +++ b/hw/xfree86/xaa/xaaStateChange.c @@ -274,7 +274,8 @@ typedef struct _XAAStateWrapRec { #endif } XAAStateWrapRec, *XAAStateWrapPtr; -static DevPrivateKey XAAStateKey = &XAAStateKey; +static int XAAStateKeyIndex; +static DevPrivateKey XAAStateKey = &XAAStateKeyIndex; /* Wrap functions start here */ #define GET_STATEPRIV_GC(pGC) XAAStateWrapPtr pStatePriv =\ diff --git a/hw/xfree86/xaa/xaaWrapper.c b/hw/xfree86/xaa/xaaWrapper.c index 5d6ea05cf..88418946f 100644 --- a/hw/xfree86/xaa/xaaWrapper.c +++ b/hw/xfree86/xaa/xaaWrapper.c @@ -129,8 +129,10 @@ typedef struct _xaaWrapperGCPriv { #define xaaWrapperGCPriv(pGC) xaaWrapperGCPrivPtr pGCPriv = xaaWrapperGetGCPriv(pGC) -static DevPrivateKey xaaWrapperScrPrivateKey = &xaaWrapperScrPrivateKey; -static DevPrivateKey xaaWrapperGCPrivateKey = &xaaWrapperGCPrivateKey; +static int xaaWrapperScrPrivateKeyIndex; +static DevPrivateKey xaaWrapperScrPrivateKey = &xaaWrapperScrPrivateKeyIndex; +static int xaaWrapperGCPrivateKeyIndex; +static DevPrivateKey xaaWrapperGCPrivateKey = &xaaWrapperGCPrivateKeyIndex; static Bool xaaWrapperCreateScreenResources(ScreenPtr pScreen) diff --git a/hw/xnest/GC.c b/hw/xnest/GC.c index 06e6e0205..65425e98f 100644 --- a/hw/xnest/GC.c +++ b/hw/xnest/GC.c @@ -35,7 +35,8 @@ is" without express or implied warranty. #include "XNFont.h" #include "Color.h" -DevPrivateKey xnestGCPrivateKey = &xnestGCPrivateKey; +static int xnestGCPrivateKeyIndex; +DevPrivateKey xnestGCPrivateKey = &xnestGCPrivateKeyIndex; static GCFuncs xnestFuncs = { xnestValidateGC, diff --git a/hw/xnest/Pixmap.c b/hw/xnest/Pixmap.c index 04311966d..08305b10b 100644 --- a/hw/xnest/Pixmap.c +++ b/hw/xnest/Pixmap.c @@ -33,7 +33,8 @@ is" without express or implied warranty. #include "Screen.h" #include "XNPixmap.h" -DevPrivateKey xnestPixmapPrivateKey = &xnestPixmapPrivateKey; +static int xnestPixmapPrivateKeyIndex; +DevPrivateKey xnestPixmapPrivateKey = &xnestPixmapPrivateKeyIndex; PixmapPtr xnestCreatePixmap(ScreenPtr pScreen, int width, int height, int depth, diff --git a/hw/xnest/Screen.c b/hw/xnest/Screen.c index 4e8616dd5..ca903d7ac 100644 --- a/hw/xnest/Screen.c +++ b/hw/xnest/Screen.c @@ -45,7 +45,8 @@ is" without express or implied warranty. Window xnestDefaultWindows[MAXSCREENS]; Window xnestScreenSaverWindows[MAXSCREENS]; -DevPrivateKey xnestCursorScreenKey = &xnestCursorScreenKey; +static int xnestCursorScreenKeyIndex; +DevPrivateKey xnestCursorScreenKey = &xnestCursorScreenKeyIndex; ScreenPtr xnestScreen(Window window) diff --git a/hw/xnest/Window.c b/hw/xnest/Window.c index 23383e180..ae3487f4a 100644 --- a/hw/xnest/Window.c +++ b/hw/xnest/Window.c @@ -39,7 +39,8 @@ is" without express or implied warranty. #include "Events.h" #include "Args.h" -DevPrivateKey xnestWindowPrivateKey = &xnestWindowPrivateKey; +static int xnestWindowPrivateKeyIndex; +DevPrivateKey xnestWindowPrivateKey = &xnestWindowPrivateKeyIndex; static int xnestFindWindowMatch(WindowPtr pWin, pointer ptr) diff --git a/hw/xquartz/darwin.c b/hw/xquartz/darwin.c index 8107beb9f..559bc8960 100644 --- a/hw/xquartz/darwin.c +++ b/hw/xquartz/darwin.c @@ -85,7 +85,8 @@ FILE *debug_log_fp = NULL; * X server shared global variables */ int darwinScreensFound = 0; -DevPrivateKey darwinScreenKey = &darwinScreenKey; +static int darwinScreenKeyIndex; +DevPrivateKey darwinScreenKey = &darwinScreenKeyIndex; io_connect_t darwinParamConnect = 0; int darwinEventReadFD = -1; int darwinEventWriteFD = -1; diff --git a/hw/xquartz/quartz.c b/hw/xquartz/quartz.c index c4b889ed0..b17e56170 100644 --- a/hw/xquartz/quartz.c +++ b/hw/xquartz/quartz.c @@ -71,7 +71,8 @@ int quartzUseAGL = 1; int quartzEnableKeyEquivalents = 1; int quartzServerVisible = TRUE; int quartzServerQuitting = FALSE; -DevPrivateKey quartzScreenKey = &quartzScreenKey; +static int quartzScreenKeyIndex; +DevPrivateKey quartzScreenKey = &quartzScreenKeyIndex; int aquaMenuBarHeight = 0; QuartzModeProcsPtr quartzProcs = NULL; const char *quartzOpenGLBundle = NULL; diff --git a/hw/xquartz/xpr/dri.c b/hw/xquartz/xpr/dri.c index 3aacb192d..5b79419dd 100644 --- a/hw/xquartz/xpr/dri.c +++ b/hw/xquartz/xpr/dri.c @@ -71,9 +71,12 @@ SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. #include <AvailabilityMacros.h> -static DevPrivateKey DRIScreenPrivKey = &DRIScreenPrivKey; -static DevPrivateKey DRIWindowPrivKey = &DRIWindowPrivKey; -static DevPrivateKey DRIPixmapPrivKey = &DRIPixmapPrivKey; +static int DRIScreenPrivKeyIndex; +static DevPrivateKey DRIScreenPrivKey = &DRIScreenPrivKeyIndex; +static int DRIWindowPrivKeyIndex; +static DevPrivateKey DRIWindowPrivKey = &DRIWindowPrivKeyIndex; +static int DRIPixmapPrivKeyIndex; +static DevPrivateKey DRIPixmapPrivKey = &DRIPixmapPrivKeyIndex; static RESTYPE DRIDrawablePrivResType; diff --git a/hw/xquartz/xpr/xprCursor.c b/hw/xquartz/xpr/xprCursor.c index 76ab75c02..c1890a2e4 100644 --- a/hw/xquartz/xpr/xprCursor.c +++ b/hw/xquartz/xpr/xprCursor.c @@ -56,7 +56,8 @@ typedef struct { miPointerSpriteFuncPtr spriteFuncs; } QuartzCursorScreenRec, *QuartzCursorScreenPtr; -static DevPrivateKey darwinCursorScreenKey = &darwinCursorScreenKey; +static int darwinCursorScreenKeyIndex; +static DevPrivateKey darwinCursorScreenKey = &darwinCursorScreenKeyIndex; #define CURSOR_PRIV(pScreen) ((QuartzCursorScreenPtr) \ dixLookupPrivate(&pScreen->devPrivates, darwinCursorScreenKey)) diff --git a/hw/xwin/winglobals.c b/hw/xwin/winglobals.c index fddada39e..3eb6091e6 100644 --- a/hw/xwin/winglobals.c +++ b/hw/xwin/winglobals.c @@ -44,11 +44,16 @@ int g_iLastScreen = -1; #ifdef HAS_DEVWINDOWS int g_fdMessageQueue = WIN_FD_INVALID; #endif -DevPrivateKey g_iScreenPrivateKey = &g_iScreenPrivateKey; -DevPrivateKey g_iCmapPrivateKey = &g_iCmapPrivateKey; -DevPrivateKey g_iGCPrivateKey = &g_iGCPrivateKey; -DevPrivateKey g_iPixmapPrivateKey = &g_iPixmapPrivateKey; -DevPrivateKey g_iWindowPrivateKey = &g_iWindowPrivateKey; +static int g_iScreenPrivateKeyIndex; +DevPrivateKey g_iScreenPrivateKey = &g_iScreenPrivateKeyIndex; +static int g_iCmapPrivateKeyIndex; +DevPrivateKey g_iCmapPrivateKey = &g_iCmapPrivateKeyIndex; +static int g_iGCPrivateKeyIndex; +DevPrivateKey g_iGCPrivateKey = &g_iGCPrivateKeyIndex; +static int g_iPixmapPrivateKeyIndex; +DevPrivateKey g_iPixmapPrivateKey = &g_iPixmapPrivateKeyIndex; +static int g_iWindowPrivateKeyIndex; +DevPrivateKey g_iWindowPrivateKey = &g_iWindowPrivateKeyIndex; unsigned long g_ulServerGeneration = 0; Bool g_fInitializedDefaultScreens = FALSE; DWORD g_dwEnginesSupported = 0; diff --git a/mi/mibank.c b/mi/mibank.c index ea79e9d36..92288abef 100644 --- a/mi/mibank.c +++ b/mi/mibank.c @@ -175,8 +175,11 @@ typedef struct _miBankQueue #define xalloc_ARRAY(atype, ntype) \ (atype *)xalloc((ntype) * sizeof(atype)) -static DevPrivateKey miBankScreenKey = &miBankScreenKey; -static DevPrivateKey miBankGCKey = &miBankGCKey; +static int miBankScreenKeyIndex; +static DevPrivateKey miBankScreenKey = &miBankScreenKeyIndex; +static int miBankGCKeyIndex; +static DevPrivateKey miBankGCKey = &miBankGCKeyIndex; + static unsigned long miBankGeneration = 0; #define BANK_SCRPRIVLVAL dixLookupPrivate(&pScreen->devPrivates, miBankScreenKey) diff --git a/mi/midispcur.c b/mi/midispcur.c index 1f2d8cf03..05352fc89 100644 --- a/mi/midispcur.c +++ b/mi/midispcur.c @@ -55,13 +55,14 @@ in this Software without prior written authorization from The Open Group. # include "inputstr.h" /* for MAX_DEVICES */ /* per-screen private data */ - -static DevPrivateKey miDCScreenKey = &miDCScreenKey; +static int miDCScreenKeyIndex; +static DevPrivateKey miDCScreenKey = &miDCScreenKeyIndex; static Bool miDCCloseScreen(int index, ScreenPtr pScreen); /* per device private data */ -static DevPrivateKey miDCSpriteKey = &miDCSpriteKey; +static int miDCSpriteKeyIndex; +static DevPrivateKey miDCSpriteKey = &miDCSpriteKeyIndex; typedef struct { GCPtr pSourceGC, pMaskGC; diff --git a/mi/mioverlay.c b/mi/mioverlay.c index 2fc583ed4..395b1aab2 100644 --- a/mi/mioverlay.c +++ b/mi/mioverlay.c @@ -54,8 +54,10 @@ typedef struct { Bool copyUnderlay; } miOverlayScreenRec, *miOverlayScreenPtr; -static DevPrivateKey miOverlayWindowKey = &miOverlayWindowKey; -static DevPrivateKey miOverlayScreenKey = &miOverlayScreenKey; +static int miOverlayWindowKeyKeyIndex; +static DevPrivateKey miOverlayWindowKey = &miOverlayWindowKeyKeyIndex; +static int miOverlayScreenKeyIndex; +static DevPrivateKey miOverlayScreenKey = &miOverlayScreenKeyIndex; static void RebuildTree(WindowPtr); static Bool HasUnderlayChildren(WindowPtr); diff --git a/mi/mipointer.c b/mi/mipointer.c index 809ce5e8b..8293e9b4f 100644 --- a/mi/mipointer.c +++ b/mi/mipointer.c @@ -41,13 +41,15 @@ in this Software without prior written authorization from The Open Group. # include "dixstruct.h" # include "inputstr.h" -_X_EXPORT DevPrivateKey miPointerScreenKey = &miPointerScreenKey; +static int miPointerScreenKeyIndex; +_X_EXPORT DevPrivateKey miPointerScreenKey = &miPointerScreenKeyIndex; #define GetScreenPrivate(s) ((miPointerScreenPtr) \ dixLookupPrivate(&(s)->devPrivates, miPointerScreenKey)) #define SetupScreen(s) miPointerScreenPtr pScreenPriv = GetScreenPrivate(s) -static DevPrivateKey miPointerPrivKey = &miPointerPrivKey; +static int miPointerPrivKeyIndex; +static DevPrivateKey miPointerPrivKey = &miPointerPrivKeyIndex; #define MIPOINTER(dev) \ ((DevHasCursor((dev)) || (!dev->isMaster && !dev->u.master)) ? \ diff --git a/mi/miscrinit.c b/mi/miscrinit.c index 6cd4df3a8..df969939e 100644 --- a/mi/miscrinit.c +++ b/mi/miscrinit.c @@ -280,7 +280,8 @@ miScreenInit( return miScreenDevPrivateInit(pScreen, width, pbits); } -static DevPrivateKey privateKey = &privateKey; +static int privateKeyIndex; +static DevPrivateKey privateKey = &privateKeyIndex; _X_EXPORT DevPrivateKey miAllocateGCPrivateIndex() @@ -288,7 +289,8 @@ miAllocateGCPrivateIndex() return privateKey; } -_X_EXPORT DevPrivateKey miZeroLineScreenKey = &miZeroLineScreenKey; +static int miZeroLineScreenKeyIndex; +_X_EXPORT DevPrivateKey miZeroLineScreenKey = &miZeroLineScreenKeyIndex; _X_EXPORT void miSetZeroLineBias(ScreenPtr pScreen, unsigned int bias) diff --git a/mi/misprite.c b/mi/misprite.c index 85755b75a..692e6c97a 100644 --- a/mi/misprite.c +++ b/mi/misprite.c @@ -109,8 +109,10 @@ miSpriteIsDown(miCursorInfoPtr pDevCursor) * screen wrappers */ -static DevPrivateKey miSpriteScreenKey = &miSpriteScreenKey; -static DevPrivateKey miSpriteDevPrivatesKey = &miSpriteDevPrivatesKey; +static int miSpriteScreenKeyIndex; +static DevPrivateKey miSpriteScreenKey = &miSpriteScreenKeyIndex; +static int mmiSpriteDevPrivatesKeyIndex; +static DevPrivateKey miSpriteDevPrivatesKey = &mmiSpriteDevPrivatesKeyIndex; static Bool miSpriteCloseScreen(int i, ScreenPtr pScreen); static void miSpriteGetImage(DrawablePtr pDrawable, int sx, int sy, diff --git a/miext/cw/cw.c b/miext/cw/cw.c index efb046948..56066fe9c 100644 --- a/miext/cw/cw.c +++ b/miext/cw/cw.c @@ -43,11 +43,15 @@ #define CW_ASSERT(x) do {} while (0) #endif -DevPrivateKey cwGCKey = &cwGCKey; -DevPrivateKey cwScreenKey = &cwScreenKey; -DevPrivateKey cwWindowKey = &cwWindowKey; +static int cwGCKeyIndex; +DevPrivateKey cwGCKey = &cwGCKeyIndex; +static int cwScreenKeyIndex; +DevPrivateKey cwScreenKey = &cwScreenKeyIndex; +static int cwWindowKeyIndex; +DevPrivateKey cwWindowKey = &cwWindowKeyIndex; #ifdef RENDER -DevPrivateKey cwPictureKey = &cwPictureKey; +static int cwPictureKeyIndex; +DevPrivateKey cwPictureKey = &cwPictureKeyIndex; #endif extern GCOps cwGCOps; diff --git a/miext/damage/damage.c b/miext/damage/damage.c index 56864c56d..5000a824f 100755 --- a/miext/damage/damage.c +++ b/miext/damage/damage.c @@ -70,10 +70,14 @@ #define pixmapDamage(pPixmap) damagePixPriv(pPixmap) -static DevPrivateKey damageScrPrivateKey = &damageScrPrivateKey; -static DevPrivateKey damagePixPrivateKey = &damagePixPrivateKey; -static DevPrivateKey damageGCPrivateKey = &damageGCPrivateKey; -static DevPrivateKey damageWinPrivateKey = &damageWinPrivateKey; +static int damageScrPrivateKeyIndex; +static DevPrivateKey damageScrPrivateKey = &damageScrPrivateKeyIndex; +static int damagePixPrivateKeyIndex; +static DevPrivateKey damagePixPrivateKey = &damagePixPrivateKeyIndex; +static int damageGCPrivateKeyIndex; +static DevPrivateKey damageGCPrivateKey = &damageGCPrivateKeyIndex; +static int damageWinPrivateKeyIndex; +static DevPrivateKey damageWinPrivateKey = &damageWinPrivateKeyIndex; static DamagePtr * getDrawableDamageRef (DrawablePtr pDrawable) diff --git a/miext/rootless/rootlessScreen.c b/miext/rootless/rootlessScreen.c index 8eaacca0b..421c03c00 100644 --- a/miext/rootless/rootlessScreen.c +++ b/miext/rootless/rootlessScreen.c @@ -62,10 +62,14 @@ extern int RootlessMiValidateTree(WindowPtr pRoot, WindowPtr pChild, extern Bool RootlessCreateGC(GCPtr pGC); // Initialize globals -DevPrivateKey rootlessGCPrivateKey = &rootlessGCPrivateKey; -DevPrivateKey rootlessScreenPrivateKey = &rootlessScreenPrivateKey; -DevPrivateKey rootlessWindowPrivateKey = &rootlessWindowPrivateKey; -DevPrivateKey rootlessWindowOldPixmapPrivateKey = &rootlessWindowOldPixmapPrivateKey; +static int rootlessGCPrivateKeyIndex; +DevPrivateKey rootlessGCPrivateKey = &rootlessGCPrivateKeyIndex; +static int rootlessScreenPrivateKeyIndex; +DevPrivateKey rootlessScreenPrivateKey = &rootlessScreenPrivateKeyIndex; +static int rootlessWindowPrivateKeyIndex; +DevPrivateKey rootlessWindowPrivateKey = &rootlessWindowPrivateKeyIndex; +static int rootlessWindowOldPixmapPrivateKeyIndex; +DevPrivateKey rootlessWindowOldPixmapPrivateKey = &rootlessWindowOldPixmapPrivateKeyIndex; /* diff --git a/miext/shadow/shadow.c b/miext/shadow/shadow.c index ef0df4091..21f1de2d5 100644 --- a/miext/shadow/shadow.c +++ b/miext/shadow/shadow.c @@ -36,7 +36,8 @@ #include "gcstruct.h" #include "shadow.h" -DevPrivateKey shadowScrPrivateKey = &shadowScrPrivateKey; +static int shadowScrPrivateKeyIndex; +DevPrivateKey shadowScrPrivateKey = &shadowScrPrivateKeyIndex; #define wrap(priv, real, mem) {\ priv->mem = real->mem; \ diff --git a/randr/randr.c b/randr/randr.c index 9bfed0529..230d816a3 100644 --- a/randr/randr.c +++ b/randr/randr.c @@ -56,9 +56,11 @@ static int SProcRRDispatch (ClientPtr pClient); int RREventBase; int RRErrorBase; RESTYPE RRClientType, RREventType; /* resource types for event masks */ -DevPrivateKey RRClientPrivateKey = &RRClientPrivateKey; +static int RRClientPrivateKeyIndex; +DevPrivateKey RRClientPrivateKey = &RRClientPrivateKeyIndex; -DevPrivateKey rrPrivKey = &rrPrivKey; +static int rrPrivKeyIndex; +DevPrivateKey rrPrivKey = &rrPrivKeyIndex; static void RRClientCallback (CallbackListPtr *list, diff --git a/record/record.c b/record/record.c index d7314b1b1..d6a1c983b 100644 --- a/record/record.c +++ b/record/record.c @@ -165,7 +165,8 @@ typedef struct { ProcFunctionPtr recordVector[256]; } RecordClientPrivateRec, *RecordClientPrivatePtr; -static DevPrivateKey RecordClientPrivateKey = &RecordClientPrivateKey; +static int RecordClientPrivateKeyIndex; +static DevPrivateKey RecordClientPrivateKey = &RecordClientPrivateKeyIndex; /* RecordClientPrivatePtr RecordClientPrivate(ClientPtr) * gets the client private of the given client. Syntactic sugar. diff --git a/render/animcur.c b/render/animcur.c index 362607f7a..5723442fa 100644 --- a/render/animcur.c +++ b/render/animcur.c @@ -91,7 +91,9 @@ static CursorBits animCursorBits = { }; static int AnimCurGeneration; -static DevPrivateKey AnimCurScreenPrivateKey = &AnimCurScreenPrivateKey; + +static int AnimCurScreenPrivateKeyIndex; +static DevPrivateKey AnimCurScreenPrivateKey = &AnimCurScreenPrivateKeyIndex; #define IsAnimCur(c) ((c) && ((c)->bits == &animCursorBits)) #define GetAnimCur(c) ((AnimCurPtr) ((c) + 1)) diff --git a/render/picture.c b/render/picture.c index b7874bb64..9def47b0f 100644 --- a/render/picture.c +++ b/render/picture.c @@ -43,8 +43,10 @@ #include "xace.h" #include "registry.h" -_X_EXPORT DevPrivateKey PictureScreenPrivateKey = &PictureScreenPrivateKey; -DevPrivateKey PictureWindowPrivateKey = &PictureWindowPrivateKey; +static int PictureScreenPrivateKeyIndex; +_X_EXPORT DevPrivateKey PictureScreenPrivateKey = &PictureScreenPrivateKeyIndex; +static int PictureWindowPrivateKeyIndex; +DevPrivateKey PictureWindowPrivateKey = &PictureWindowPrivateKeyIndex; static int PictureGeneration; RESTYPE PictureType; RESTYPE PictFormatType; diff --git a/render/render.c b/render/render.c index b1d6d5853..1b7d78b87 100644 --- a/render/render.c +++ b/render/render.c @@ -211,7 +211,8 @@ int (*SProcRenderVector[RenderNumberRequests])(ClientPtr) = { }; int RenderErrBase; -DevPrivateKey RenderClientPrivateKey; +static int RenderClientPrivateKeyIndex; +DevPrivateKey RenderClientPrivateKey = &RenderClientPrivateKeyIndex; typedef struct _RenderClient { int major_version; diff --git a/xfixes/cursor.c b/xfixes/cursor.c index ca1739797..c4069d9b6 100755 --- a/xfixes/cursor.c +++ b/xfixes/cursor.c @@ -56,10 +56,12 @@ static RESTYPE CursorClientType; static RESTYPE CursorHideCountType; static RESTYPE CursorWindowType; -static DevPrivateKey CursorScreenPrivateKey = &CursorScreenPrivateKey; static CursorPtr CursorCurrent; static CursorPtr pInvisibleCursor = NULL; +static int CursorScreenPrivateKeyIndex; +static DevPrivateKey CursorScreenPrivateKey = &CursorScreenPrivateKeyIndex; + static void deleteCursorHideCountsForScreen (ScreenPtr pScreen); #define VERIFY_CURSOR(pCursor, cursor, client, access) { \ diff --git a/xfixes/xfixes.c b/xfixes/xfixes.c index 0db49895e..d1225c6f3 100755 --- a/xfixes/xfixes.c +++ b/xfixes/xfixes.c @@ -56,7 +56,9 @@ static unsigned char XFixesReqCode; int XFixesEventBase; int XFixesErrorBase; -static DevPrivateKey XFixesClientPrivateKey = &XFixesClientPrivateKey; + +static int XFixesClientPrivateKeyIndex; +static DevPrivateKey XFixesClientPrivateKey = &XFixesClientPrivateKeyIndex; static int ProcXFixesQueryVersion(ClientPtr client) diff --git a/xkb/xkbActions.c b/xkb/xkbActions.c index 8a2682562..35938a960 100644 --- a/xkb/xkbActions.c +++ b/xkb/xkbActions.c @@ -42,7 +42,8 @@ THE USE OR PERFORMANCE OF THIS SOFTWARE. #include <ctype.h> #define EXTENSION_EVENT_BASE 64 -DevPrivateKey xkbDevicePrivateKey = &xkbDevicePrivateKey; +static int xkbDevicePrivateKeyIndex; +DevPrivateKey xkbDevicePrivateKey = &xkbDevicePrivateKeyIndex; void xkbUnwrapProc(DeviceIntPtr device, DeviceHandleProc proc, |