- Apply band-aid patch from CORE-8506. Problem still persists, how did a bad region get plugged into the DCE structure?

svn path=/trunk/; revision=64054
This commit is contained in:
James Tabor 2014-09-06 17:47:45 +00:00
parent adcc14bdf9
commit 7ae67c3b7a

View file

@ -215,7 +215,7 @@ DceUpdateVisRgn(DCE *Dce, PWND Window, ULONG Flags)
PWND Parent; PWND Parent;
Parent = Window->spwndParent; Parent = Window->spwndParent;
if(!Parent) if (!Parent)
{ {
RgnVisible = NULL; RgnVisible = NULL;
goto noparent; goto noparent;
@ -252,15 +252,19 @@ DceUpdateVisRgn(DCE *Dce, PWND Window, ULONG Flags)
noparent: noparent:
if (Flags & DCX_INTERSECTRGN) if (Flags & DCX_INTERSECTRGN)
{ {
if(Dce->hrgnClip != NULL) PREGION RgnClip = NULL;
if (Dce->hrgnClip != NULL)
RgnClip = REGION_LockRgn(Dce->hrgnClip);
if (RgnClip)
{ {
PREGION RgnClip = REGION_LockRgn(Dce->hrgnClip);
IntGdiCombineRgn(RgnVisible, RgnVisible, RgnClip, RGN_AND); IntGdiCombineRgn(RgnVisible, RgnVisible, RgnClip, RGN_AND);
REGION_UnlockRgn(RgnClip); REGION_UnlockRgn(RgnClip);
} }
else else
{ {
if(RgnVisible != NULL) if (RgnVisible != NULL)
{ {
REGION_Delete(RgnVisible); REGION_Delete(RgnVisible);
} }