https://git.reactos.org/?p=reactos.git;a=commitdiff;h=675edad96f8dfec3b1fd2a...
commit 675edad96f8dfec3b1fd2a3a88b877eca2e8f039 Author: Mark Jansen mark.jansen@reactos.org AuthorDate: Wed Jun 9 22:56:53 2021 +0200 Commit: Mark Jansen mark.jansen@reactos.org CommitDate: Thu Jun 10 21:25:34 2021 +0200
[RAPPS] Fix double free when closing rapps --- base/applications/rapps/appview.cpp | 14 ++++++++++---- base/applications/rapps/include/appview.h | 7 ++++--- 2 files changed, 14 insertions(+), 7 deletions(-)
diff --git a/base/applications/rapps/appview.cpp b/base/applications/rapps/appview.cpp index 57442cd0e80..aa908ffcf2c 100644 --- a/base/applications/rapps/appview.cpp +++ b/base/applications/rapps/appview.cpp @@ -1113,12 +1113,18 @@ CAppInfoDisplay::~CAppInfoDisplay()
// **** CAppsListView ****
-CAppsListView::CAppsListView() : - bHasCheckboxes(FALSE), - nLastHeaderID(-1) +CAppsListView::CAppsListView() { }
+CAppsListView::~CAppsListView() +{ + if (m_hImageListView) + { + ImageList_Destroy(m_hImageListView); + } +} + VOID CAppsListView::SetCheckboxesVisible(BOOL bIsVisible) { if (bIsVisible) @@ -1253,7 +1259,7 @@ INT CAppsListView::CompareFunc(LPARAM lParam1, LPARAM lParam2, INT iSubItem) HWND CAppsListView::Create(HWND hwndParent) { RECT r = { 205, 28, 465, 250 }; - DWORD style = WS_CHILD | WS_VISIBLE | LVS_SORTASCENDING | LVS_REPORT | LVS_SINGLESEL | LVS_SHOWSELALWAYS | LVS_AUTOARRANGE; + DWORD style = WS_CHILD | WS_VISIBLE | LVS_SORTASCENDING | LVS_REPORT | LVS_SINGLESEL | LVS_SHOWSELALWAYS | LVS_AUTOARRANGE | LVS_SHAREIMAGELISTS;
HWND hwnd = CListView::Create(hwndParent, r, NULL, style, WS_EX_CLIENTEDGE);
diff --git a/base/applications/rapps/include/appview.h b/base/applications/rapps/include/appview.h index 668131245ce..192a59c7489 100644 --- a/base/applications/rapps/include/appview.h +++ b/base/applications/rapps/include/appview.h @@ -211,20 +211,21 @@ class CAppsListView : };
BOOL bIsAscending = TRUE; - BOOL bHasCheckboxes; + BOOL bHasCheckboxes = FALSE;
INT ItemCount = 0; INT CheckedItemCount = 0; INT ColumnCount = 0;
- INT nLastHeaderID; + INT nLastHeaderID = -1;
APPLICATION_VIEW_TYPE ApplicationViewType = AppViewTypeEmpty;
- HIMAGELIST m_hImageListView; + HIMAGELIST m_hImageListView = NULL;
public: CAppsListView(); + ~CAppsListView();
VOID SetCheckboxesVisible(BOOL bIsVisible);