summaryrefslogtreecommitdiff
path: root/exa/exa.c
diff options
context:
space:
mode:
authorMaarten Maathuis <madman2003@gmail.com>2008-12-26 16:38:27 +0100
committerMaarten Maathuis <madman2003@gmail.com>2008-12-26 16:38:27 +0100
commit3534a5e5d9c5af85149c799f324257f89507fa23 (patch)
tree203b1faa2c6a9e921abd1be3bdf572ce10ea1ecf /exa/exa.c
parent027b440d4f9f0cdd46addff46fd2d5c44cd5c847 (diff)
exa: Allow drivers to set non-NULL devPrivate.ptr for !offscreen pixmaps.
Diffstat (limited to 'exa/exa.c')
-rw-r--r--exa/exa.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/exa/exa.c b/exa/exa.c
index d7949fde9..ba063bb04 100644
--- a/exa/exa.c
+++ b/exa/exa.c
@@ -313,6 +313,11 @@ exaCreatePixmap(ScreenPtr pScreen, int w, int h, int depth,
datasize = h * paddedWidth;
+ /* Set this before driver hooks, to allow for !offscreen pixmaps.
+ * !offscreen pixmaps have a valid pointer at all times.
+ */
+ pPixmap->devPrivate.ptr = NULL;
+
pExaPixmap->driverPriv = pExaScr->info->CreatePixmap(pScreen, datasize, 0);
if (!pExaPixmap->driverPriv) {
fbDestroyPixmap(pPixmap);
@@ -325,7 +330,6 @@ exaCreatePixmap(ScreenPtr pScreen, int w, int h, int depth,
pExaPixmap->fb_ptr = NULL;
pExaPixmap->pDamage = NULL;
pExaPixmap->sys_ptr = pPixmap->devPrivate.ptr;
- pPixmap->devPrivate.ptr = NULL;
} else {
pExaPixmap->driverPriv = NULL;