From 53f74b6aa95fe57fda45fd8a051595e772f00402 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. --- 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)