... instead of saving them in the colormap private. Signed-off-by: Adam Jackson <a...@redhat.com> --- hw/xfree86/common/xf86cmap.c | 16 +++++----------- 1 file changed, 5 insertions(+), 11 deletions(-)
diff --git a/hw/xfree86/common/xf86cmap.c b/hw/xfree86/common/xf86cmap.c index a01d02cb3..0f4926c18 100644 --- a/hw/xfree86/common/xf86cmap.c +++ b/hw/xfree86/common/xf86cmap.c @@ -95,7 +95,7 @@ typedef struct { } CMapScreenRec, *CMapScreenPtr; typedef struct { - LOCO *colors; + LOCO *unused; } CMapColormapRec, *CMapColormapPtr; static DevPrivateKeyRec CMapScreenKeyRec; @@ -281,20 +281,13 @@ CMapAllocateColormapPrivate(ColormapPtr pmap) CMapScreenPtr pScreenPriv = getCMapScreenPtr(pmap->pScreen); CMapColormapPtr pColPriv; CMapLinkPtr pLink; - LOCO *colors; - - if (!(colors = xallocarray(CMapNumColors(pmap, pScreenPriv), sizeof(LOCO)))) - return FALSE; if (!(pColPriv = malloc(sizeof(CMapColormapRec)))) { - free(colors); return FALSE; } dixSetPrivate(&pmap->devPrivates, CMapColormapKey, pColPriv); - pColPriv->colors = colors; - /* add map to list */ pLink = malloc(sizeof(CMapLink)); if (pLink) { @@ -332,7 +325,6 @@ CMapDestroyColormap(ColormapPtr cmap) CMapLinkPtr prevLink = NULL, pLink = pScreenPriv->maps; if (pColPriv) { - free(pColPriv->colors); free(pColPriv); } @@ -535,7 +527,6 @@ static void CMapRefreshColors(ColormapPtr pmap, int defs, int *indices) { CMapScreenPtr pScreenPriv = getCMapScreenPtr(pmap->pScreen); - CMapColormapPtr pColPriv = getCMapColormapPtr(pmap); VisualPtr pVisual = pmap->pVisual; ScrnInfoPtr pScrn = xf86ScreenToScrn(pmap->pScreen); int numColors, i; @@ -547,7 +538,8 @@ CMapRefreshColors(ColormapPtr pmap, int defs, int *indices) shift = 16 - pScreenPriv->sigRGBbits; maxValue = (1 << pScreenPriv->sigRGBbits) - 1; gamma = pScreenPriv->gamma; - colors = pColPriv->colors; + if (!(colors = xallocarray(CMapNumColors(pmap, pScreenPriv), sizeof(LOCO)))) + return; reds = pVisual->redMask >> pVisual->offsetRed; greens = pVisual->greenMask >> pVisual->offsetGreen; @@ -639,6 +631,8 @@ CMapRefreshColors(ColormapPtr pmap, int defs, int *indices) if (LOAD_PALETTE(pmap)) (*pScrn->LoadPalette) (pScrn, defs, indices, colors, pmap->pVisual); + + free(colors); } static void -- 2.14.3 _______________________________________________ xorg-devel@lists.x.org: X.Org development Archives: http://lists.x.org/archives/xorg-devel Info: https://lists.x.org/mailman/listinfo/xorg-devel