summaryrefslogtreecommitdiff
path: root/exa
diff options
context:
space:
mode:
authorMichel Dänzer <daenzer@vmware.com>2009-09-03 19:11:02 +0200
committerMichel Dänzer <daenzer@vmware.com>2009-09-03 19:11:02 +0200
commit8e873185f4cbfb2a36e1f43fe7da47fd9fd5aeea (patch)
tree9025fa2394c12eeed66a7f8e04401a4696c24bca /exa
parent120286aef59dabdb7c9fa762e08457e5cc8ec3a6 (diff)
EXA: Preserve pPixmap->devPrivate.ptr in exaPixmapIsOffscreen_mixed.
Otherwise we may incorrectly clobber it to NULL on repeated PrepareAccess calls.
Diffstat (limited to 'exa')
-rw-r--r--exa/exa_mixed.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/exa/exa_mixed.c b/exa/exa_mixed.c
index 7ba62ea5f..01f87ba87 100644
--- a/exa/exa_mixed.c
+++ b/exa/exa_mixed.c
@@ -236,14 +236,16 @@ exaPixmapIsOffscreen_mixed(PixmapPtr pPixmap)
ScreenPtr pScreen = pPixmap->drawable.pScreen;
ExaScreenPriv(pScreen);
ExaPixmapPriv(pPixmap);
+ pointer saved_ptr;
Bool ret;
if (!pExaPixmap->driverPriv)
return FALSE;
+ saved_ptr = pPixmap->devPrivate.ptr;
pPixmap->devPrivate.ptr = ExaGetPixmapAddress(pPixmap);
ret = pExaScr->info->PixmapIsOffscreen(pPixmap);
- pPixmap->devPrivate.ptr = NULL;
+ pPixmap->devPrivate.ptr = saved_ptr;
return ret;
}