summaryrefslogtreecommitdiff
path: root/exa/exa_unaccel.c
diff options
context:
space:
mode:
authorMichel Dänzer <michel@tungstengraphics.com>2008-06-06 11:01:03 +0200
committerMichel Dänzer <michel@tungstengraphics.com>2008-06-06 11:01:03 +0200
commit6b96281100f2118fe9d99536c33d48298a5bce7b (patch)
tree73777b73b88ab14d067ad7bc718be640813dcdda /exa/exa_unaccel.c
parentd25ffcfbfcfe8e059f2889873c9dbe76a28ad00c (diff)
EXA: Fix exaGetPixmapFirstPixel() crash if the driver has a CreatePixmap hook.
Fixes http://bugs.freedesktop.org/show_bug.cgi?id=16243
Diffstat (limited to 'exa/exa_unaccel.c')
-rw-r--r--exa/exa_unaccel.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/exa/exa_unaccel.c b/exa/exa_unaccel.c
index 5a2576414..ee6b98e35 100644
--- a/exa/exa_unaccel.c
+++ b/exa/exa_unaccel.c
@@ -362,6 +362,7 @@ ExaCheckComposite (CARD8 op,
CARD32
exaGetPixmapFirstPixel (PixmapPtr pPixmap)
{
+ ExaScreenPriv(pPixmap->drawable.pScreen);
CARD32 pixel;
void *fb;
Bool need_finish = FALSE;
@@ -376,7 +377,8 @@ exaGetPixmapFirstPixel (PixmapPtr pPixmap)
fb = pExaPixmap->sys_ptr;
/* Try to avoid framebuffer readbacks */
- if ((!offscreen && !sys_valid && !damaged) ||
+ if (pExaScr->info->CreatePixmap ||
+ (!offscreen && !sys_valid && !damaged) ||
(offscreen && (!sys_valid || damaged)))
{
box.x1 = 0;