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.
This commit is contained in:
@@ -28,6 +28,7 @@
|
|||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
|
|
||||||
#include "gcstruct.h"
|
#include "gcstruct.h"
|
||||||
|
#include "pixmapstr.h"
|
||||||
#include "cw.h"
|
#include "cw.h"
|
||||||
|
|
||||||
#define SETUP_BACKING_DST(_pDst, _pGC) \
|
#define SETUP_BACKING_DST(_pDst, _pGC) \
|
||||||
@@ -43,6 +44,9 @@
|
|||||||
&src_off_y)
|
&src_off_y)
|
||||||
|
|
||||||
#define PROLOGUE(pGC) do { \
|
#define PROLOGUE(pGC) do { \
|
||||||
|
if (pBackingGC->serialNumber != pBackingDst->serialNumber) { \
|
||||||
|
ValidateGC(pBackingDst, pBackingGC); \
|
||||||
|
} \
|
||||||
pGC->funcs = pGCPrivate->wrapFuncs;\
|
pGC->funcs = pGCPrivate->wrapFuncs;\
|
||||||
pGC->ops = pGCPrivate->wrapOps;\
|
pGC->ops = pGCPrivate->wrapOps;\
|
||||||
} while (0)
|
} while (0)
|
||||||
|
|||||||
Reference in New Issue
Block a user