https://git.reactos.org/?p=reactos.git;a=commitdiff;h=e286c4c5202ac2d6e7909e...
commit e286c4c5202ac2d6e7909ee05cdc95f76b8f4897 Author: Hermès Bélusca-Maïto hermes.belusca-maito@reactos.org AuthorDate: Sat Sep 1 23:42:11 2018 +0200 Commit: Hermès Bélusca-Maïto hermes.belusca-maito@reactos.org CommitDate: Sat Sep 1 23:46:20 2018 +0200
[WIN32K:NTUSER] Optimize IntWinListOwnedPopups() a little bit. Improve a trace. --- win32ss/user/ntuser/window.c | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-)
diff --git a/win32ss/user/ntuser/window.c b/win32ss/user/ntuser/window.c index 40a7459dd2..4776b8e9d3 100644 --- a/win32ss/user/ntuser/window.c +++ b/win32ss/user/ntuser/window.c @@ -288,16 +288,19 @@ IntWinListOwnedPopups(PWND Window) { PWND Child, Desktop; HWND *List; - UINT Index, NumChildren = 0; + UINT Index, NumOwned = 0;
Desktop = co_GetDesktopWindow(Window); if (!Desktop) return NULL;
for (Child = Desktop->spwndChild; Child; Child = Child->spwndNext) - ++NumChildren; + { + if (Child->spwndOwner == Window) + ++NumOwned; + }
- List = ExAllocatePoolWithTag(PagedPool, (NumChildren + 1) * sizeof(HWND), USERTAG_WINDOWLIST); + List = ExAllocatePoolWithTag(PagedPool, (NumOwned + 1) * sizeof(HWND), USERTAG_WINDOWLIST); if (!List) { ERR("Failed to allocate memory for children array\n"); @@ -2626,7 +2629,7 @@ BOOLEAN co_UserDestroyWindow(PVOID Object) hWnd = Window->head.h; ti = PsGetCurrentThreadWin32Thread();
- TRACE("co_UserDestroyWindow \n"); + TRACE("co_UserDestroyWindow(Window = 0x%p, hWnd = 0x%p)\n", Window, hWnd);
/* Check for owner thread */ if ( Window->head.pti != PsGetCurrentThreadWin32Thread())