summaryrefslogtreecommitdiff
path: root/miext/shadow/shadow.c
diff options
context:
space:
mode:
Diffstat (limited to 'miext/shadow/shadow.c')
-rw-r--r--miext/shadow/shadow.c15
1 files changed, 4 insertions, 11 deletions
diff --git a/miext/shadow/shadow.c b/miext/shadow/shadow.c
index f624216db..74544b1a0 100644
--- a/miext/shadow/shadow.c
+++ b/miext/shadow/shadow.c
@@ -36,8 +36,7 @@
#include "gcstruct.h"
#include "shadow.h"
-int shadowScrPrivateIndex;
-int shadowGeneration;
+DevPrivateKey shadowScrPrivateKey = &shadowScrPrivateKey;
#define wrap(priv, real, mem) {\
priv->mem = real->mem; \
@@ -116,7 +115,8 @@ static void
shadowReportFunc(DamagePtr pDamage, RegionPtr pRegion, void *closure)
{
ScreenPtr pScreen = closure;
- shadowBufPtr pBuf = pScreen->devPrivates[shadowScrPrivateIndex].ptr;
+ shadowBufPtr pBuf = (shadowBufPtr)
+ dixLookupPrivate(&pScreen->devPrivates, shadowScrPrivateKey);
/* Register the damaged region, use DamageReportNone below when we
* want to break BC below... */
@@ -138,13 +138,6 @@ shadowSetup(ScreenPtr pScreen)
if (!DamageSetup(pScreen))
return FALSE;
- if (shadowGeneration != serverGeneration) {
- shadowScrPrivateIndex = AllocateScreenPrivateIndex();
- if (shadowScrPrivateIndex == -1)
- return FALSE;
- shadowGeneration = serverGeneration;
- }
-
pBuf = (shadowBufPtr) xalloc(sizeof(shadowBufRec));
if (!pBuf)
return FALSE;
@@ -175,7 +168,7 @@ shadowSetup(ScreenPtr pScreen)
REGION_NULL(pScreen, &pBuf->damage); /* bc */
#endif
- pScreen->devPrivates[shadowScrPrivateIndex].ptr = (pointer) pBuf;
+ dixSetPrivate(&pScreen->devPrivates, shadowScrPrivateKey, pBuf);
return TRUE;
}