From 56abf7e4444fde61ad78591217cf865cbf7795e4 Mon Sep 17 00:00:00 2001 From: kichik Date: Sun, 23 Mar 2003 17:12:14 +0000 Subject: [PATCH] Now frees the memory of loaded bitmaps when exiting git-svn-id: https://svn.code.sf.net/p/nsis/code/NSIS/trunk@2353 212acab6-be3b-0410-9dea-997c60f758d6 --- Contrib/InstallOptions/InstallerOptions.cpp | 52 +++++++++++--------- Plugins/InstallOptions.dll | Bin 12800 -> 12800 bytes 2 files changed, 30 insertions(+), 22 deletions(-) diff --git a/Contrib/InstallOptions/InstallerOptions.cpp b/Contrib/InstallOptions/InstallerOptions.cpp index 35744a99..7b038082 100644 --- a/Contrib/InstallOptions/InstallerOptions.cpp +++ b/Contrib/InstallOptions/InstallerOptions.cpp @@ -76,27 +76,28 @@ int LookupTokens(TableEntry*, char*); void ConvertNewLines(char *str); struct FieldType { - char *pszText; - char *pszState; - char *pszRoot; + char *pszText; + char *pszState; + char *pszRoot; - char *pszListItems; - char *pszFilter; + char *pszListItems; + char *pszFilter; - int nType; - RECT rect; + int nType; + RECT rect; - int nMinLength; - int nMaxLength; - char *pszValidateText; + int nMinLength; + int nMaxLength; + char *pszValidateText; - int nFlags; - bool bSaveDlg; + int nFlags; + bool bSaveDlg; - HWND hwnd; - UINT nControlID; + HWND hwnd; + UINT nControlID; - int nParentIdx; // this is used by the filerequest and dirrequest controls + int nParentIdx; // this is used by the filerequest and dirrequest controls + HANDLE hImage; // this is used by image/icon field to save the handle to the image }; // initial buffer size. buffers will grow as required. @@ -930,12 +931,9 @@ int createCfgDlg() } } else if (nType == FIELD_BITMAP || nType == FIELD_ICON) { WPARAM nImageType = nType == FIELD_BITMAP ? IMAGE_BITMAP : IMAGE_ICON; - SendMessage( - hwCtrl, - STM_SETIMAGE, - nImageType, - pFields[nIdx].pszText? - (LPARAM)LoadImage( + LPARAM nImage = 0; + if (nImageType == IMAGE_BITMAP) { + pFields[nIdx].hImage = LoadImage( 0, pFields[nIdx].pszText, nImageType, @@ -946,7 +944,16 @@ int createCfgDlg() ? (pFields[nIdx].rect.bottom - pFields[nIdx].rect.top) : (rect.bottom - rect.top), LR_LOADFROMFILE - ):(LPARAM)LoadIcon(GetModuleHandle(0), MAKEINTRESOURCE(103)) + ); + nImage = (LPARAM)pFields[nIdx].hImage; + } + else + nImage = (LPARAM)LoadIcon(GetModuleHandle(0), MAKEINTRESOURCE(103)); + SendMessage( + hwCtrl, + STM_SETIMAGE, + nImageType, + nImage ); } } @@ -1012,6 +1019,7 @@ void showCfgDlg() FREE(pFields[nIdx].pszListItems); FREE(pFields[nIdx].pszFilter); FREE(pFields[nIdx].pszRoot); + DeleteObject(pFields[nIdx].hImage); } FREE(pFields); diff --git a/Plugins/InstallOptions.dll b/Plugins/InstallOptions.dll index 35cb998a5924526aa213448a41fd1049592b9506..0b9ab614159b92d55da0a0a7be2130ac8132aa89 100644 GIT binary patch delta 4184 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 QWKJ@lGS~Ogcekhf7fp!gz5oCK delta 4238 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