diff options
author | Michel Dänzer <daenzer@vmware.com> | 2009-10-01 15:17:11 +1000 |
---|---|---|
committer | Peter Hutterer <peter.hutterer@who-t.net> | 2009-10-01 16:27:36 +1000 |
commit | 8026c5a08584419be3adecd5965dd03e793ddf81 (patch) | |
tree | 9ae6f8cffa0351fd7467ea0314331fb88a0b8f0b | |
parent | e182c1b4368c6958579732dd4ddc59de2b46359b (diff) |
exa: avoid infinite loops if UTS sw fallbacks.
The upload in finish access can cause an infinite loop if
UTS returns FALSE in here.
Fixes fd.o bug #24246.
Signed-off-by: Dave Airlie <airlied@redhat.com>
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
(cherry picked from commit b5fcc5553eb784c9f4826936e839079c0cdee55a)
-rw-r--r-- | exa/exa_migration_classic.c | 10 |
1 files changed, 5 insertions, 5 deletions
diff --git a/exa/exa_migration_classic.c b/exa/exa_migration_classic.c index 4819af841..6d7b9f5b6 100644 --- a/exa/exa_migration_classic.c +++ b/exa/exa_migration_classic.c @@ -242,11 +242,6 @@ exaCopyDirty(ExaMigrationPtr migrate, RegionPtr pValidDst, RegionPtr pValidSrc, pBox++; } - if (access_prepared) - exaFinishAccess(&pPixmap->drawable, fallback_index); - else if (need_sync && sync) - sync (pPixmap->drawable.pScreen); - pExaPixmap->offscreen = save_offscreen; pPixmap->devKind = save_pitch; @@ -261,6 +256,11 @@ exaCopyDirty(ExaMigrationPtr migrate, RegionPtr pValidDst, RegionPtr pValidSrc, REGION_UNION(pScreen, pValidDst, pValidDst, &CopyReg); REGION_UNINIT(pScreen, &CopyReg); + + if (access_prepared) + exaFinishAccess(&pPixmap->drawable, fallback_index); + else if (need_sync && sync) + sync (pPixmap->drawable.pScreen); } /** |