From 1628bdcd644eece020c308d70b85e769caf7747e Mon Sep 17 00:00:00 2001 From: Eric Anholt Date: Fri, 16 Jun 2006 10:14:30 -0700 Subject: [PATCH] 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. (cherry picked from 53f74b6aa95fe57fda45fd8a051595e772f00402 commit) --- miext/cw/cw_ops.c | 4 ++++ 1 file changed, 4 insertions(+) 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 #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)