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

commit f974f0288109581ff5d0dbf9f1e1c11092d0ebb3
Author:     Katayama Hirofumi MZ <[email protected]>
AuthorDate: Wed Aug 24 09:11:36 2022 +0900
Commit:     Katayama Hirofumi MZ <[email protected]>
CommitDate: Wed Aug 24 09:11:36 2022 +0900

    [KBSWITCH] Fix menu handle leak
---
 base/applications/kbswitch/kbswitch.c | 11 +++++++----
 1 file changed, 7 insertions(+), 4 deletions(-)

diff --git a/base/applications/kbswitch/kbswitch.c 
b/base/applications/kbswitch/kbswitch.c
index 5057fda8e42..5039e087b61 100644
--- a/base/applications/kbswitch/kbswitch.c
+++ b/base/applications/kbswitch/kbswitch.c
@@ -437,7 +437,8 @@ VOID DoUnregisterAltShiftHotKeys(HWND hwnd)
 LRESULT CALLBACK
 WndProc(HWND hwnd, UINT Message, WPARAM wParam, LPARAM lParam)
 {
-    static HMENU hRightPopupMenu;
+    static HMENU s_hMenu;
+    static HMENU s_hRightPopupMenu;
     static UINT s_uTaskbarRestart;
 
     switch (Message)
@@ -446,7 +447,9 @@ WndProc(HWND hwnd, UINT Message, WPARAM wParam, LPARAM 
lParam)
         {
             SetHooks();
             AddTrayIcon(hwnd);
-            hRightPopupMenu = GetSubMenu(LoadMenu(hInst, 
MAKEINTRESOURCE(IDR_POPUP)), 0);
+
+            s_hMenu = LoadMenu(hInst, MAKEINTRESOURCE(IDR_POPUP));
+            s_hRightPopupMenu = GetSubMenu(s_hMenu, 0);
 
             ActivateLayout(hwnd, ulCurrentLayoutNum);
             s_uTaskbarRestart = RegisterWindowMessage(TEXT("TaskbarCreated"));
@@ -502,7 +505,7 @@ WndProc(HWND hwnd, UINT Message, WPARAM wParam, LPARAM 
lParam)
                     }
                     else
                     {
-                        TrackPopupMenu(hRightPopupMenu, 0, pt.x, pt.y, 0, 
hwnd, NULL);
+                        TrackPopupMenu(s_hRightPopupMenu, 0, pt.x, pt.y, 0, 
hwnd, NULL);
                     }
 
                     PostMessage(hwnd, WM_NULL, 0, 0);
@@ -558,7 +561,7 @@ WndProc(HWND hwnd, UINT Message, WPARAM wParam, LPARAM 
lParam)
         {
             DoUnregisterAltShiftHotKeys(hwnd);
             DeleteHooks();
-            DestroyMenu(hRightPopupMenu);
+            DestroyMenu(s_hMenu);
             DelTrayIcon(hwnd);
             PostQuitMessage(0);
 

Reply via email to