Commit fa0bb018 authored by Adam Jackson's avatar Adam Jackson

rootless: Fix bogus handling of broken root clip

gcc quite correctly complains about this:

    In file included from ../../include/scrnintstr.h:51:0,
                     from rootlessValTree.c:98:
    In function 'RegionUninit.isra.1',
        inlined from 'RegionEmpty' at ../../include/regionstr.h:194:5,
        inlined from 'RootlessMiValidateTree' at rootlessValTree.c:490:9:
    ../../include/regionstr.h:166:9: warning: attempt to free a non-heap object 'RegionBrokenData' [-Wfree-nonheap-object]
             free((_pReg)->data);

So that'd crash if you ever got there.  RegionNull will do almost the
same thing only without the free(), so let's do that instead; it might
still not be an entirely sane way to recover, but it at least won't
crash.
Reviewed-by: default avatarKeith Packard <keithp@keithp.com>
Signed-off-by: default avatarAdam Jackson <ajax@redhat.com>
parent b25f7d0c
...@@ -487,7 +487,7 @@ RootlessMiValidateTree(WindowPtr pRoot, /* Parent to validate */ ...@@ -487,7 +487,7 @@ RootlessMiValidateTree(WindowPtr pRoot, /* Parent to validate */
if (RegionBroken(&pRoot->clipList) && !RegionBroken(&pRoot->borderClip)) { if (RegionBroken(&pRoot->clipList) && !RegionBroken(&pRoot->borderClip)) {
// fixme this might not work, but hopefully doesn't happen anyway. // fixme this might not work, but hopefully doesn't happen anyway.
kind = VTBroken; kind = VTBroken;
RegionEmpty(&pRoot->clipList); RegionNull(&pRoot->clipList);
ErrorF("ValidateTree: BUSTED!\n"); ErrorF("ValidateTree: BUSTED!\n");
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment