From 7897de4ef8aceb0c5906a3fb9a5c0314218bae23 Mon Sep 17 00:00:00 2001 From: "Guy L. Albertelli" Date: Tue, 5 Dec 2000 03:53:23 +0000 Subject: [PATCH] - correct number of colormap entries looked at in GetDIBColorTable. - correct number of colormap entries processed in SetDIBColorTable. --- graphics/x11drv/dib.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/graphics/x11drv/dib.c b/graphics/x11drv/dib.c index fa86b78524..cfa06b1071 100644 --- a/graphics/x11drv/dib.c +++ b/graphics/x11drv/dib.c @@ -3659,7 +3659,7 @@ UINT X11DRV_DIB_SetDIBColorTable(BITMAPOBJ *bmp, DC *dc, UINT start, UINT count, if (dib && dib->colorMap) { X11DRV_DIB_GenColorMap( dc, dib->colorMap, DIB_RGB_COLORS, dib->dibSection.dsBm.bmBitsPixel, - TRUE, colors, start, count - start ); + TRUE, colors, start, count + start ); return count; } return 0; @@ -3673,7 +3673,8 @@ UINT X11DRV_DIB_GetDIBColorTable(BITMAPOBJ *bmp, DC *dc, UINT start, UINT count, X11DRV_DIBSECTION *dib = (X11DRV_DIBSECTION *) bmp->dib; if (dib && dib->colorMap) { - int i, end = count - start; + int i, end = count + start; + if (end > dib->nColorMap) end = dib->nColorMap; for (i = start; i < end; i++,colors++) { COLORREF col = X11DRV_PALETTE_ToLogical( dib->colorMap[i] ); colors->rgbBlue = GetBValue(col); @@ -3681,7 +3682,7 @@ UINT X11DRV_DIB_GetDIBColorTable(BITMAPOBJ *bmp, DC *dc, UINT start, UINT count, colors->rgbRed = GetRValue(col); colors->rgbReserved = 0; } - return count; + return end-start; } return 0; }