The comment in CreateGCperDepth here is wrong, there is already a 1bpp entry in the pixmap format list.
Signed-off-by: Adam Jackson <[email protected]> --- dix/gc.c | 10 ++++------ hw/dmx/dmxextension.c | 4 ++-- 2 files changed, 6 insertions(+), 8 deletions(-) diff --git a/dix/gc.c b/dix/gc.c index cb8db85..73bb3b4 100644 --- a/dix/gc.c +++ b/dix/gc.c @@ -825,7 +825,7 @@ FreeGCperDepth(int screenNum) pScreen = screenInfo.screens[screenNum]; ppGC = pScreen->GCperDepth; - for (i = 0; i <= pScreen->numDepths; i++) { + for (i = 0; i < pScreen->numDepths; i++) { (void) FreeGC(ppGC[i], (XID) 0); ppGC[i] = NULL; } @@ -841,16 +841,14 @@ CreateGCperDepth(int screenNum) pScreen = screenInfo.screens[screenNum]; ppGC = pScreen->GCperDepth; - /* do depth 1 separately because it's not included in list */ - if (!(ppGC[0] = CreateScratchGC(pScreen, 1))) - return FALSE; + /* Make sure we don't overflow GCperDepth[] */ if (pScreen->numDepths > MAXFORMATS) return FALSE; pDepth = pScreen->allowedDepths; for (i = 0; i < pScreen->numDepths; i++, pDepth++) { - if (!(ppGC[i + 1] = CreateScratchGC(pScreen, pDepth->depth))) { + if (!(ppGC[i] = CreateScratchGC(pScreen, pDepth->depth))) { for (; i >= 0; i--) (void) FreeGC(ppGC[i], (XID) 0); return FALSE; @@ -1041,7 +1039,7 @@ GetScratchGC(unsigned depth, ScreenPtr pScreen) int i; GCPtr pGC; - for (i = 0; i <= pScreen->numDepths; i++) { + for (i = 0; i < pScreen->numDepths; i++) { pGC = pScreen->GCperDepth[i]; if (pGC && pGC->depth == depth && !pGC->scratch_inuse) { pGC->scratch_inuse = TRUE; diff --git a/hw/dmx/dmxextension.c b/hw/dmx/dmxextension.c index 4f5ca72..82a02f0 100644 --- a/hw/dmx/dmxextension.c +++ b/hw/dmx/dmxextension.c @@ -716,7 +716,7 @@ dmxBECreateScratchGCs(int scrnNum) GCPtr *ppGC = pScreen->GCperDepth; int i; - for (i = 0; i <= pScreen->numDepths; i++) + for (i = 0; i < pScreen->numDepths; i++) dmxBECreateGC(pScreen, ppGC[i]); } @@ -1586,7 +1586,7 @@ dmxBEDestroyScratchGCs(int scrnNum) GCPtr *ppGC = pScreen->GCperDepth; int i; - for (i = 0; i <= pScreen->numDepths; i++) + for (i = 0; i < pScreen->numDepths; i++) dmxBEFreeGC(ppGC[i]); } -- 2.9.3 _______________________________________________ [email protected]: X.Org development Archives: http://lists.x.org/archives/xorg-devel Info: https://lists.x.org/mailman/listinfo/xorg-devel
