[PATCH 1/3] shell32: Avoid leaking icon handles.

Andrew Eikum aeikum at codeweavers.com
Wed Apr 19 08:29:56 CDT 2017


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 at 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
> 
> 
> 



More information about the wine-patches mailing list