xserver-multidpi/dix
Adam Jackson 516e75dbb6 dix: Call SourceValidate before GetImage
This ensures that any prep work for the drawable we're about to read
from is already done before we call down to GetImage. This should be no
functional change as most of the callers with a non-trivial
SourceValidate are already wrapping GetImage and doing the equivalent
thing, but we'll be simplifying that shortly.

More importantly this ensures that if any of that prep work would
generate events - like automatic compositing flushing rendering to a
parent pixmap which then triggers damage - then it happens entirely
before we start writing the GetImage reply header.

Note that we do not do the same for GetSpans, but that's okay. The only
way to get to GetSpans is through miCopyArea or miCopyPlane - where the
callers must already call SourceValidate - or miGetImage - which this
commit now protects with SourceValidate.

Fixes: xorg/xserver#902
Reviewed-by: Michel Dänzer <mdaenzer@redhat.com>
2019-10-30 16:26:01 +00:00
..
.gitignore dtrace: Move Xserver.d from dix/ to include/ 2019-08-27 17:38:54 -04:00
atom.c atom: make FreeAtom static 2015-07-08 16:41:29 -04:00
buildatoms XFree86 4.3.0.1 2003-11-14 16:49:22 +00:00
BuiltInAtoms R6.6 is the Xorg base-line 2003-11-14 15:54:54 +00:00
colormap.c configurable maximum number of clients 2015-08-24 00:00:18 -07:00
cursor.c dix: Remove -fn and -fc options to set default text/cursor fonts 2019-10-30 16:17:04 +00:00
devices.c include: Remove now-empty site.h 2019-10-30 16:17:04 +00:00
dispatch.c dix: Call SourceValidate before GetImage 2019-10-30 16:26:01 +00:00
dispatch.h Drop trailing whitespaces 2014-11-12 10:25:00 +10:00
dixfonts.c dix: Fix a warning about GetTimeInMillis return value in XFont2. 2018-05-08 11:59:28 -04:00
dixutils.c dix: ensure work queues are cleared on reset 2018-11-19 19:37:10 +00:00
enterleave.c dix: always send focus event on grab change 2018-04-10 14:50:08 -04:00
enterleave.h dix: Unexport various implementation details 2015-07-08 16:40:57 -04:00
eventconvert.c Use ARRAY_SIZE all over the tree 2017-10-30 13:45:20 -04:00
events.c dix: Assert noPanoramiXExtension is false in PanoramiX code 2019-08-09 20:45:01 -07:00
extension.c dix: Allow an extension to disable itself 2018-04-24 14:36:04 -04:00
gc.c Use ARRAY_SIZE all over the tree 2017-10-30 13:45:20 -04:00
getevents.c dtrace: s/#if/#ifdef/ for XSERVER_DTRACE 2019-08-27 17:38:59 -04:00
globals.c include: Remove now-empty site.h 2019-10-30 16:17:04 +00:00
glyphcurs.c Let calloc handle multiplication 2015-04-21 16:57:07 -07:00
grabs.c Convert dix/* to new *allocarray functions 2015-04-21 16:57:08 -07:00
initatoms.c Introduce a consistent coding style 2012-03-21 13:54:42 -07:00
inpututils.c dix: Remove LegalModifier() 2018-09-28 16:25:17 -04:00
main.c include: Remove now-empty site.h 2019-10-30 16:17:04 +00:00
Makefile.am dtrace: Move Xserver.d from dix/ to include/ 2019-08-27 17:38:54 -04:00
meson.build meson: Add dtrace support 2019-08-27 17:38:59 -04:00
pixmap.c mi: Add a default no-op miSourceValidate 2019-10-30 16:26:01 +00:00
privates.c dix: Fix undefined memset in _dixInitScreenPrivates 2019-10-15 14:06:50 -04:00
property.c dix: Add a callback chain for window property state change 2017-02-23 13:30:11 -05:00
protocol.txt protocol.txt: add GLX req. 35 - SetClientInfo2ARB 2018-02-27 13:08:35 -05:00
ptrveloc.c Remove SIGIO support for input [v5] 2016-05-26 16:07:54 -07:00
region.c assert(a && b) --> assert(a); assert(b) 2019-05-02 15:02:36 -07:00
registry.c Build required portions of registry.c automatically [v2] 2014-09-18 15:29:29 -07:00
resource.c dix: Fix undefined shift in HashResourceID 2019-10-15 14:06:21 -04:00
selection.c dix: Push UpdateCurrentTimeIf down out of the main loop 2016-05-04 10:58:01 -04:00
stubmain.c Allow DDX to provide a main() 2013-07-23 23:56:58 +01:00
swaprep.c dispatch: Mark swapped dispatch as _X_COLD 2017-03-01 10:16:20 -05:00
swapreq.c dix: Disallow GenericEvent in SendEvent request. 2017-06-19 11:58:50 +10:00
tables.c Drop trailing whitespaces 2014-11-12 10:25:00 +10:00
touch.c dix: Reallocate touchpoint buffer at input event time [v2] 2016-05-26 16:07:54 -07:00
window.c dix: Remove WindowRec::backStorage 2019-04-12 21:53:03 +00:00