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 53f74b6aa9 commit)
This commit is contained in:
Eric Anholt 2006-06-16 10:14:30 -07:00
parent 8348131abb
commit 1628bdcd64

View file

@ -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)