OSDN Git Service

Fix crash on ImageList_Destroy() call in CMainFrame::~CMainFrame() (found by Applicat...
authorTakashi Sawanaka <sdottaka@users.sourceforge.net>
Tue, 24 Aug 2021 13:35:47 +0000 (22:35 +0900)
committerTakashi Sawanaka <sdottaka@users.sourceforge.net>
Tue, 24 Aug 2021 13:38:40 +0000 (22:38 +0900)
Src/MainFrm.cpp
Src/MainFrm.h

index 7bfc1e2..6f70d23 100644 (file)
@@ -2319,25 +2319,25 @@ void CMainFrame::LoadToolbarImages()
                (1 + std::clamp(GetOptionsMgr()->GetInt(OPT_TOOLBAR_SIZE), 0, ID_TOOLBAR_HUGE - ID_TOOLBAR_SMALL));
        const int toolbarOrgImgSize = toolbarNewImgSize <= 20 ? 16 : 32;
        CToolBarCtrl& BarCtrl = m_wndToolBar.GetToolBarCtrl();
-
-       m_ToolbarImages[TOOLBAR_IMAGES_ENABLED].Detach();
-       m_ToolbarImages[TOOLBAR_IMAGES_DISABLED].Detach();
+       CImageList imgEnabled, imgDisabled;
        CSize sizeButton(0, 0);
 
        LoadToolbarImageList(toolbarOrgImgSize, toolbarNewImgSize,
                toolbarOrgImgSize <= 16 ? IDB_TOOLBAR_ENABLED : IDB_TOOLBAR_ENABLED32,
-               false, m_ToolbarImages[TOOLBAR_IMAGES_ENABLED]);
+               false, imgEnabled);
        LoadToolbarImageList(toolbarOrgImgSize, toolbarNewImgSize,
                toolbarOrgImgSize <= 16 ? IDB_TOOLBAR_ENABLED : IDB_TOOLBAR_ENABLED32,
-               true, m_ToolbarImages[TOOLBAR_IMAGES_DISABLED]);
+               true, imgDisabled);
 
        sizeButton = CSize(toolbarNewImgSize + 8, toolbarNewImgSize + 8);
 
        BarCtrl.SetButtonSize(sizeButton);
-       if (CImageList *pImgList = BarCtrl.SetImageList(&m_ToolbarImages[TOOLBAR_IMAGES_ENABLED]))
+       if (CImageList* pImgList = BarCtrl.SetImageList(&imgEnabled))
                pImgList->DeleteImageList();
-       if (CImageList *pImgList = BarCtrl.SetDisabledImageList(&m_ToolbarImages[TOOLBAR_IMAGES_DISABLED]))
+       if (CImageList* pImgList = BarCtrl.SetDisabledImageList(&imgDisabled))
                pImgList->DeleteImageList();
+       imgEnabled.Detach();
+       imgDisabled.Detach();
 
        // resize the rebar.
        REBARBANDINFO rbbi = { sizeof REBARBANDINFO };
index a272008..537631a 100644 (file)
@@ -247,16 +247,6 @@ protected:
                }
        } m_wndMDIClient;
 
-       /** @brief Toolbar image table indexes. */
-       enum TOOLBAR_IMAGES
-       {
-               TOOLBAR_IMAGES_ENABLED,
-               TOOLBAR_IMAGES_DISABLED,
-               TOOLBAR_IMAGES_COUNT
-       };
-
-       CImageList m_ToolbarImages[TOOLBAR_IMAGES_COUNT]; /**< Images for toolbar */
-
        enum
        {
                MENU_DEFAULT,