mirror of
https://github.com/reactos/reactos.git
synced 2025-02-24 09:25:10 +00:00
- Fixed deadlock in IntFindWindowToRepaint.
svn path=/trunk/; revision=8296
This commit is contained in:
parent
f38fdd47c3
commit
e6ad1bc2c0
1 changed files with 10 additions and 6 deletions
|
@ -16,7 +16,7 @@
|
||||||
* along with this program; if not, write to the Free Software
|
* along with this program; if not, write to the Free Software
|
||||||
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||||
*
|
*
|
||||||
* $Id: painting.c,v 1.70 2004/02/21 22:22:26 navaraf Exp $
|
* $Id: painting.c,v 1.71 2004/02/21 23:30:18 navaraf Exp $
|
||||||
*
|
*
|
||||||
* COPYRIGHT: See COPYING in the top level directory
|
* COPYRIGHT: See COPYING in the top level directory
|
||||||
* PROJECT: ReactOS kernel
|
* PROJECT: ReactOS kernel
|
||||||
|
@ -560,7 +560,6 @@ IntFindWindowToRepaint(HWND hWnd, PW32THREAD Thread)
|
||||||
}
|
}
|
||||||
|
|
||||||
ExAcquireFastMutex(&Window->ChildrenListLock);
|
ExAcquireFastMutex(&Window->ChildrenListLock);
|
||||||
|
|
||||||
for (Child = Window->LastChild; Child; Child = Child->PrevSibling)
|
for (Child = Window->LastChild; Child; Child = Child->PrevSibling)
|
||||||
{
|
{
|
||||||
if (IntIsWindowDirty(Child) &&
|
if (IntIsWindowDirty(Child) &&
|
||||||
|
@ -570,21 +569,26 @@ IntFindWindowToRepaint(HWND hWnd, PW32THREAD Thread)
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
ExReleaseFastMutex(&Window->ChildrenListLock);
|
||||||
|
|
||||||
if (hFoundWnd == NULL)
|
if (hFoundWnd == NULL)
|
||||||
{
|
{
|
||||||
for (Child = Window->LastChild; Child; Child = Child->PrevSibling)
|
HWND *List;
|
||||||
|
INT i;
|
||||||
|
|
||||||
|
List = IntWinListChildren(Window);
|
||||||
|
if (List != NULL)
|
||||||
{
|
{
|
||||||
if (Child->Style & WS_VISIBLE)
|
for (i = 0; List[i]; i++)
|
||||||
{
|
{
|
||||||
hFoundWnd = IntFindWindowToRepaint(Child->Self, Thread);
|
hFoundWnd = IntFindWindowToRepaint(List[i], Thread);
|
||||||
if (hFoundWnd != NULL)
|
if (hFoundWnd != NULL)
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
ExFreePool(List);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
ExReleaseFastMutex(&Window->ChildrenListLock);
|
|
||||||
IntReleaseWindowObject(Window);
|
IntReleaseWindowObject(Window);
|
||||||
|
|
||||||
return hFoundWnd;
|
return hFoundWnd;
|
||||||
|
|
Loading…
Reference in a new issue