[PATCH 6/8] dix: Switch window unmap to mark normally instead of UnmapValData

Peter Harris pharris at opentext.com
Mon Nov 17 13:29:26 PST 2014


On 2014-11-17 15:41, Adam Jackson wrote:
> diff --git a/dix/window.c b/dix/window.c
> index a82c294..af63703 100644
> --- a/dix/window.c
> +++ b/dix/window.c
> @@ -2748,7 +2748,7 @@ UnmapWindow(WindowPtr pWin, Bool fromConfigure)
>      if (SubStrSend(pWin, pParent))
>          DeliverUnmapNotify(pWin, fromConfigure);
>      if (wasPaintable && !fromConfigure) {
> -        pWin->valdata = UnmapValData;
> +        (*pScreen->MarkWindow) (pWin);
>          (*pScreen->MarkOverlappedWindows) (pWin, pWin->nextSib, &pLayerWin);
>          (*pScreen->MarkWindow) (pLayerWin->parent);
>      }

This is going to leak a valdata every time a window wasPaintable and
becomes not paintable. miValidateTree, near the bottom, just sets
valdata to NULL after emptying the clip list. (I didn't see an addition
of a free() in PATCH 2/8, but that hunk should probably be with this
patch anyway to avoid breaking bisect).

Peter Harris
-- 
               Open Text Connectivity Solutions Group
Peter Harris                    http://connectivity.opentext.com/
Research and Development        Phone: +1 905 762 6001
pharris at opentext.com            Toll Free: 1 877 359 4866


More information about the xorg-devel mailing list