[INPUT] Don't race the system to free an imagelist 1666/head
authorMark Jansen <mark.jansen@reactos.org>
Sun, 16 Jun 2019 19:54:44 +0000 (21:54 +0200)
committerMark Jansen <mark.jansen@reactos.org>
Sun, 16 Jun 2019 21:11:03 +0000 (23:11 +0200)
dll/cpl/input/settings_page.c

index 72260a8..8c09398 100644 (file)
@@ -226,7 +226,8 @@ OnInitSettingsPage(HWND hwndDlg)
                                             ILC_COLOR8 | ILC_MASK, 0, 0);
         if (hLayoutImageList != NULL)
         {
                                             ILC_COLOR8 | ILC_MASK, 0, 0);
         if (hLayoutImageList != NULL)
         {
-            ListView_SetImageList(hwndInputList, hLayoutImageList, LVSIL_SMALL);
+            HIMAGELIST hOldImagelist = ListView_SetImageList(hwndInputList, hLayoutImageList, LVSIL_SMALL);
+            ImageList_Destroy(hOldImagelist);
         }
 
         UpdateInputListView(hwndInputList);
         }
 
         UpdateInputListView(hwndInputList);
@@ -239,18 +240,9 @@ OnInitSettingsPage(HWND hwndDlg)
 static VOID
 OnDestroySettingsPage(HWND hwndDlg)
 {
 static VOID
 OnDestroySettingsPage(HWND hwndDlg)
 {
-    HIMAGELIST hImageList;
-
     LayoutList_Destroy();
     LocaleList_Destroy();
     InputList_Destroy();
     LayoutList_Destroy();
     LocaleList_Destroy();
     InputList_Destroy();
-
-    hImageList = ListView_GetImageList(GetDlgItem(hwndDlg, IDC_KEYLAYOUT_LIST),
-                                       LVSIL_SMALL);
-    if (hImageList != NULL)
-    {
-        ImageList_Destroy(hImageList);
-    }
 }
 
 
 }