[WIN32K:NTUSER] Add ASSERT() on "linking window to itself" (#4749)
authorSerge Gautherie <32623169+SergeGautherie@users.noreply.github.com>
Sun, 2 Jul 2023 11:19:06 +0000 (13:19 +0200)
committerGitHub <noreply@github.com>
Sun, 2 Jul 2023 11:19:06 +0000 (13:19 +0200)
Addendum to ee0511b (0.4.10-dev-323).
CORE-18132

win32ss/user/ntuser/window.c

index b4ab2d6..e587c73 100644 (file)
@@ -943,7 +943,8 @@ IntLinkWindow(
 {
     if (Wnd == WndInsertAfter)
     {
-        ERR("IntLinkWindow -- Trying to link window 0x%p to itself!!\n", Wnd);
+        ERR("Trying to link window 0x%p to itself\n", Wnd);
+        ASSERT(WndInsertAfter != Wnd);
         return;
     }
 
@@ -1046,8 +1047,15 @@ VOID FASTCALL IntLinkHwnd(PWND Wnd, HWND hWndPrev)
         }
 
         if (Wnd == WndInsertAfter)
-            ERR("IntLinkHwnd -- Trying to link window 0x%p to itself!!\n", Wnd);
-        IntLinkWindow(Wnd, WndInsertAfter);
+        {
+            ERR("Trying to link window 0x%p to itself\n", Wnd);
+            ASSERT(WndInsertAfter != Wnd);
+            // FIXME: IntUnlinkWindow(Wnd) was already called. Continuing as is seems wrong!
+        }
+        else
+        {
+            IntLinkWindow(Wnd, WndInsertAfter);
+        }
 
         /* Fix the WS_EX_TOPMOST flag */
         if (!(WndInsertAfter->ExStyle & WS_EX_TOPMOST))