Re: [PATCH 1/3] shell32: Avoid leaking icon handles.
FWIW you're mixing up indent style in a function that is mostly consistently (if bizarrely) indented. Andrew On Wed, Apr 19, 2017 at 01:13:39PM +0100, Huw Davies wrote:
Signed-off-by: Huw Davies <huw(a)codeweavers.com> --- dlls/shell32/iconcache.c | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-)
diff --git a/dlls/shell32/iconcache.c b/dlls/shell32/iconcache.c index c3284a27d6..7beb47967d 100644 --- a/dlls/shell32/iconcache.c +++ b/dlls/shell32/iconcache.c @@ -305,10 +305,12 @@ static INT SIC_IconAppend (LPCWSTR sSourceFile, INT dwSourceIndex, HICON hSmallI * gets small/big icon by number from a file */ static INT SIC_LoadIcon (LPCWSTR sSourceFile, INT dwSourceIndex, DWORD dwFlags) -{ HICON hiconLarge=0; +{ + HICON hiconLarge=0; HICON hiconSmall=0; HICON hiconLargeShortcut; HICON hiconSmallShortcut; + int ret;
PrivateExtractIconsW( sSourceFile, dwSourceIndex, GetSystemMetrics(SM_CXICON), GetSystemMetrics(SM_CYICON), &hiconLarge, 0, 1, 0 ); @@ -327,6 +329,8 @@ static INT SIC_LoadIcon (LPCWSTR sSourceFile, INT dwSourceIndex, DWORD dwFlags) hiconSmallShortcut = SIC_OverlayShortcutImage(hiconSmall, FALSE); if (NULL != hiconLargeShortcut && NULL != hiconSmallShortcut) { + DestroyIcon( hiconLarge ); + DestroyIcon( hiconSmall ); hiconLarge = hiconLargeShortcut; hiconSmall = hiconSmallShortcut; } @@ -339,8 +343,12 @@ static INT SIC_LoadIcon (LPCWSTR sSourceFile, INT dwSourceIndex, DWORD dwFlags) } }
- return SIC_IconAppend (sSourceFile, dwSourceIndex, hiconSmall, hiconLarge, dwFlags); + ret = SIC_IconAppend( sSourceFile, dwSourceIndex, hiconSmall, hiconLarge, dwFlags ); + DestroyIcon( hiconLarge ); + DestroyIcon( hiconSmall ); + return ret; } + /***************************************************************************** * SIC_Initialize [internal] */ -- 2.12.0
On 19 Apr 2017, at 14:29, Andrew Eikum <aeikum(a)codeweavers.com> wrote:
FWIW you're mixing up indent style in a function that is mostly consistently (if bizarrely) indented.
Yes, I didn’t want to add more tabs. Huw.
participants (2)
-
Andrew Eikum -
Huw Davies