summaryrefslogtreecommitdiff
path: root/exa
diff options
context:
space:
mode:
authorMichel Dänzer <daenzer@vmware.com>2009-10-01 15:17:11 +1000
committerPeter Hutterer <peter.hutterer@who-t.net>2009-10-01 16:27:36 +1000
commit8026c5a08584419be3adecd5965dd03e793ddf81 (patch)
tree9ae6f8cffa0351fd7467ea0314331fb88a0b8f0b /exa
parente182c1b4368c6958579732dd4ddc59de2b46359b (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)
Diffstat (limited to 'exa')
-rw-r--r--exa/exa_migration_classic.c10
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);
}
/**