diff options
author | Maarten Maathuis <madman2003@gmail.com> | 2009-08-08 11:32:05 +0200 |
---|---|---|
committer | Maarten Maathuis <madman2003@gmail.com> | 2009-08-08 11:38:51 +0200 |
commit | d573cc46d3106824902ab4f926617bd9959af57c (patch) | |
tree | f959775a556b98f0d011cab60544209717e14db4 /exa | |
parent | 8b652435cd42929e2d187b353b3b20e798569356 (diff) |
exa: more safety
Diffstat (limited to 'exa')
-rw-r--r-- | exa/exa.c | 2 | ||||
-rw-r--r-- | exa/exa_mixed.c | 1 |
2 files changed, 2 insertions, 1 deletions
@@ -336,7 +336,7 @@ ExaDoPrepareAccess(DrawablePtr pDrawable, int index) if (!offscreen) { /* Do we need to allocate our system buffer? */ if ((pExaScr->info->flags & EXA_HANDLES_PIXMAPS) && (pExaScr->info->flags & EXA_MIXED_PIXMAPS)) { - if (!pExaPixmap->sys_ptr) { + if (!pExaPixmap->sys_ptr && !exaPixmapIsPinned(pPixmap)) { pExaPixmap->sys_ptr = malloc(pExaPixmap->sys_pitch * pDrawable->height); if (!pExaPixmap->sys_ptr) FatalError("EXA: malloc failed for size %d bytes\n", pExaPixmap->sys_pitch * pDrawable->height); diff --git a/exa/exa_mixed.c b/exa/exa_mixed.c index abfa95790..7ba62ea5f 100644 --- a/exa/exa_mixed.c +++ b/exa/exa_mixed.c @@ -82,6 +82,7 @@ exaCreatePixmap_mixed(ScreenPtr pScreen, int w, int h, int depth, datasize = h * paddedWidth; /* We will allocate the system pixmap later if needed. */ + pPixmap->devPrivate.ptr = NULL; pExaPixmap->sys_ptr = NULL; pExaPixmap->sys_pitch = paddedWidth; |