dix: Allow NULL stipple in ChangeGC
miOpqStipDrawable resets the stipple after painting. When that stipple was NULL, ChangeGC needs to handle that and not crash. Signed-off-by: Keith Packard <keithp@keithp.com> Signed-off-by: Eric Anholt <eric@anholt.net> Reviewed-off-by: Eric Anholt <eric@anholt.net>
This commit is contained in:
parent
2e040f41de
commit
ae87b53615
8
dix/gc.c
8
dix/gc.c
|
@ -261,12 +261,14 @@ ChangeGC(ClientPtr client, GC * pGC, BITS32 mask, ChangeGCValPtr pUnion)
|
|||
case GCStipple:
|
||||
NEXT_PTR(PixmapPtr, pPixmap);
|
||||
|
||||
if ((pPixmap->drawable.depth != 1) ||
|
||||
(pPixmap->drawable.pScreen != pGC->pScreen)) {
|
||||
if (pPixmap && ((pPixmap->drawable.depth != 1) ||
|
||||
(pPixmap->drawable.pScreen != pGC->pScreen)))
|
||||
{
|
||||
error = BadMatch;
|
||||
}
|
||||
else {
|
||||
pPixmap->refcnt++;
|
||||
if (pPixmap)
|
||||
pPixmap->refcnt++;
|
||||
if (pGC->stipple)
|
||||
(*pGC->pScreen->DestroyPixmap) (pGC->stipple);
|
||||
pGC->stipple = pPixmap;
|
||||
|
|
Loading…
Reference in New Issue
Block a user