xserver/exa
Éric Piel 5154dede3d 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-17 15:21:09 +01:00
..
exa.c exa: handle pixmap create/destroy in lower layers 2010-04-19 13:48:13 +10:00
exa.h exa: clarify createpixmap2 new pitch return 2009-08-15 12:14:26 +10:00
exa_accel.c EXA: Check sys_ptr isn't NULL before passing it to the UploadToScreen hook. 2010-04-22 14:16:59 +02:00
exa_classic.c exa: fix ExaCheckCopyNtoN for exa_classic when source = dest 2010-06-17 15:21:09 +01:00
exa_driver.c exa: handle pixmap create/destroy in lower layers 2010-04-19 13:48:13 +10:00
exa_glyphs.c EXA: Fix some issues pointed out by clang. 2009-09-25 09:14:40 +10:00
exa_migration_classic.c exa: avoid infinite loops if UTS sw fallbacks. 2009-10-01 16:27:36 +10:00
exa_migration_mixed.c EXA: fix mixed-pixmaps issue where we could do accel with pixmap mapped 2009-12-01 16:43:09 +01:00
exa_mixed.c exa: handle pixmap create/destroy in lower layers 2010-04-19 13:48:13 +10:00
exa_offscreen.c EXA: Don't defragment offscreen memory at allocation time. 2009-12-01 16:45:52 +01:00
exa_priv.h exa: handle pixmap create/destroy in lower layers 2010-04-19 13:48:13 +10:00
exa_render.c EXA: Fix exaTryDriverSolidFill() for solid source pictures. 2009-10-10 12:19:57 +02:00
exa_unaccel.c exa: handle pixmap create/destroy in lower layers 2010-04-19 13:48:13 +10:00
Makefile.am exa: A simple 3rd backend implementation. 2009-08-06 23:48:14 +02:00