summaryrefslogtreecommitdiff
path: root/exa
diff options
context:
space:
mode:
authorDave Airlie <airlied@redhat.com>2007-10-03 12:00:16 +1000
committerDave Airlie <airlied@redhat.com>2007-10-03 12:01:42 +1000
commit1365aeff5499a051375e43a9fcbf54733ac93929 (patch)
treea31eb1adba379b368876ce3ffec9956965782973 /exa
parent566dd3b7d789ba60d0adf33b3f729cfb02ff33cd (diff)
exa: direct access to the pixmap sys ptr is bad if the pixmap isn't mapped
Diffstat (limited to 'exa')
-rw-r--r--exa/exa_accel.c8
1 files changed, 5 insertions, 3 deletions
diff --git a/exa/exa_accel.c b/exa/exa_accel.c
index abe5c204f..e10bf5cf2 100644
--- a/exa/exa_accel.c
+++ b/exa/exa_accel.c
@@ -1138,17 +1138,19 @@ exaFillRegionSolid (DrawablePtr pDrawable,
pDrawable->bitsPerPixel != 24) {
ExaPixmapPriv(pPixmap);
+ exaPrepareAccess(pDrawable, EXA_PREPARE_DEST);
switch (pDrawable->bitsPerPixel) {
case 32:
- *(CARD32*)pExaPixmap->sys_ptr = pixel;
+ *(CARD32*)pPixmap->devPrivate.ptr = pixel;
break;
case 16:
- *(CARD16*)pExaPixmap->sys_ptr = pixel;
+ *(CARD16*)pPixmap->devPrivate.ptr = pixel;
break;
case 8:
- *(CARD8*)pExaPixmap->sys_ptr = pixel;
+ *(CARD8*)pPixmap->devPrivate.ptr = pixel;
}
+ exaFinishAccess(pDrawable, EXA_PREPARE_DEST);
REGION_UNION(pScreen, &pExaPixmap->validSys, &pExaPixmap->validSys,
pRegion);
}