diff options
author | Eric Anholt <anholt@FreeBSD.org> | 2006-06-16 10:14:30 -0700 |
---|---|---|
committer | Eric Anholt <anholt@FreeBSD.org> | 2006-06-16 10:14:30 -0700 |
commit | 53f74b6aa95fe57fda45fd8a051595e772f00402 (patch) | |
tree | 5215355b066770742ea9aff845aa9fc5bbf29621 /miext | |
parent | b90088321e6ef84970aa97d7c851af93f49bf4b7 (diff) |
Bugzilla #5120, #7246: In CW's GC ops, validate the backing GC against the
backing drawable if the serial numbers differ. Fixes crash in XAA which
occurred when the DDX bumped the serial number on the backing drawable and
expected it to get re-validated, and we didn't because the wrapped drawable
hadn't been bumped.
Diffstat (limited to 'miext')
-rw-r--r-- | miext/cw/cw_ops.c | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/miext/cw/cw_ops.c b/miext/cw/cw_ops.c index 6ba804bb3..80b72806c 100644 --- a/miext/cw/cw_ops.c +++ b/miext/cw/cw_ops.c @@ -28,6 +28,7 @@ #include <stdlib.h> #include "gcstruct.h" +#include "pixmapstr.h" #include "cw.h" #define SETUP_BACKING_DST(_pDst, _pGC) \ @@ -43,6 +44,9 @@ &src_off_y) #define PROLOGUE(pGC) do { \ + if (pBackingGC->serialNumber != pBackingDst->serialNumber) { \ + ValidateGC(pBackingDst, pBackingGC); \ + } \ pGC->funcs = pGCPrivate->wrapFuncs;\ pGC->ops = pGCPrivate->wrapOps;\ } while (0) |