xserver/exa
Éric Piel e50f84d698 exa: fix ExaCheckCopyNtoN for exa_classic when source = dest
In case you want to copy a region with source = dest, you have the same pixmap
as source and dest.

At the end of exaPixmapIsOffscreen_classic() the devPrivate.ptr is reset to
NULL (look at the sources).

Now this is what happens in ExaCheckCopyNtoN:

exaPrepareAccess( pDst );
   Calls IsOffscreen()
      sets devPrivate.ptr to NULL
   sets up devPrivate.ptr to real pointer
   Everything OK
exaPrepareAccess( pSrc );
   Calls IsOffscreen()
      sets devPrivate.ptr to NULL
   BAILS OUT CAUSE OF NESTED OPERATION SINCE DST EQUALS SRC

We end up with devPrivate.ptr as NULL, and that is clearly wrong.

In particular this fixes a segfault when using the psb driver (bug 28077)

Signed-off-by: Éric Piel <eric.piel@tremplin-utc.net>
Reviewed-by: Michel Dänzer <michel@daenzer.net>
Signed-off-by: Keith Packard <keithp@keithp.com>
(cherry picked from commit 7e8f100121)
2010-06-13 15:14:21 +10:00
..
exa.c exa: exaFinishAccess: Overrun of static array "pExaScr->access" of size 6 at position 6 with index variable "i" 2010-03-21 15:20:07 -07:00
exa.h exa: s/PixmapIsOffscreen/PixmapHasGpuCopy and s/pExaPixmap->offscreen/pExaPixmap->use_gpu_copy 2009-11-28 12:44:58 -08:00
exa_accel.c EXA: Check sys_ptr isn't NULL before passing it to the UploadToScreen hook. 2010-04-16 09:43:01 +10:00
exa_classic.c exa: fix ExaCheckCopyNtoN for exa_classic when source = dest 2010-06-13 15:14:21 +10:00
exa_driver.c exa: s/PixmapIsOffscreen/PixmapHasGpuCopy and s/pExaPixmap->offscreen/pExaPixmap->use_gpu_copy 2009-11-28 12:44:58 -08:00
exa_glyphs.c Revert "EXA: Accumulate arbitrary number of glyphs without flushing." 2009-11-30 08:36:54 -08:00
exa_migration_classic.c EXA/classic: Fix crash with migration heuristic "smart". 2009-12-29 11:04:07 -08:00
exa_migration_mixed.c EXA/mixed: Clean up exaPrepareAccessReg_mixed() a little. 2010-02-17 23:22:36 -08:00
exa_mixed.c EXA/mixed: Handle results of software fallbacks in DamageReport hook. 2009-12-29 11:04:51 -08:00
exa_offscreen.c EXA: Don't defragment offscreen memory at allocation time. 2009-11-30 08:37:06 -08:00
exa_priv.h EXA: Restrict the regions that need to be migrated for composite fallback for src / mask pictures. 2009-12-29 11:05:08 -08:00
exa_render.c exa: s/PixmapIsOffscreen/PixmapHasGpuCopy and s/pExaPixmap->offscreen/pExaPixmap->use_gpu_copy 2009-11-28 12:44:58 -08:00
exa_unaccel.c Exa screen private has SavedSourceValidate, not SourceValidate 2010-04-30 19:30:04 +10:00
Makefile.am exa: A simple 3rd backend implementation. 2009-08-06 23:48:14 +02:00