https://git.reactos.org/?p=reactos.git;a=commitdiff;h=e286c4c5202ac2d6e7909ee05cdc95f76b8f4897

commit e286c4c5202ac2d6e7909ee05cdc95f76b8f4897
Author:     Hermès Bélusca-Maïto <[email protected]>
AuthorDate: Sat Sep 1 23:42:11 2018 +0200
Commit:     Hermès Bélusca-Maïto <[email protected]>
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())

Reply via email to