From 1cb5afdf1ef53e72e0eef28ff6197bf5e86ef758 Mon Sep 17 00:00:00 2001 From: Maarten Maathuis Date: Sun, 8 Feb 2009 18:59:17 +0100 Subject: [PATCH] dix: always NULL pGC->tile.pixmap in Create{Scratch}GC. --- dix/gc.c | 5 +++-- exa/exa.c | 1 - 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/dix/gc.c b/dix/gc.c index 0eb9238a7..1cf4cb83a 100644 --- a/dix/gc.c +++ b/dix/gc.c @@ -602,6 +602,8 @@ CreateGC(DrawablePtr pDrawable, BITS32 mask, XID *pval, int *pStatus, pGC->fillStyle = FillSolid; pGC->fillRule = EvenOddRule; pGC->arcMode = ArcPieSlice; + pGC->tile.pixel = 0; + pGC->tile.pixmap = NullPixmap; if (mask & GCForeground) { /* @@ -609,12 +611,10 @@ CreateGC(DrawablePtr pDrawable, BITS32 mask, XID *pval, int *pStatus, * and snags the Foreground value to create a pseudo default-tile */ pGC->tileIsPixel = FALSE; - pGC->tile.pixmap = NullPixmap; } else { pGC->tileIsPixel = TRUE; - pGC->tile.pixel = 0; } pGC->patOrg.x = 0; @@ -932,6 +932,7 @@ CreateScratchGC(ScreenPtr pScreen, unsigned depth) pGC->font->refcnt++; pGC->tileIsPixel = TRUE; pGC->tile.pixel = 0; + pGC->tile.pixmap = NullPixmap; pGC->stipple = NullPixmap; pGC->patOrg.x = 0; pGC->patOrg.y = 0; diff --git a/exa/exa.c b/exa/exa.c index 4a3600847..a77033234 100644 --- a/exa/exa.c +++ b/exa/exa.c @@ -694,7 +694,6 @@ exaValidateGC(GCPtr pGC, /* Either of these conditions is enough to trigger access to a tile pixmap. */ /* With pGC->tileIsPixel == 1, you run the risk of dereferencing an invalid tile pixmap pointer. */ - /* XXX: find out who is forgetting to NULL these tile pixmap pointers. */ if (pGC->fillStyle == FillTiled || ((changes & GCTile) && !pGC->tileIsPixel)) { pTile = pGC->tile.pixmap;