[PATCH] comctl32: Avoid an unneeded lstrlenW() call.

Zhiyi Zhang zzhang at codeweavers.com
Sun Oct 21 23:29:11 CDT 2018



On 10/22/18 9:16 AM, Francois Gouget wrote:
> Signed-off-by: Francois Gouget <fgouget at free.fr>
> ---
>
> It seems wasteful to compute the length of the string when all we care 
> about is the first character. Plus the 'if (*str)' pattern is pretty 
> common and used extensively in Wine already.
>
>  dlls/comctl32/toolbar.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/dlls/comctl32/toolbar.c b/dlls/comctl32/toolbar.c
> index 6a51ad7fc17..ec3b49890fd 100644
> --- a/dlls/comctl32/toolbar.c
> +++ b/dlls/comctl32/toolbar.c
> @@ -2435,7 +2435,7 @@ TOOLBAR_CustomizeDialogProc(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
>                      btnInfo->btn = nmtb.tbButton;
>                      if (!(nmtb.tbButton.fsStyle & BTNS_SEP))
>                      {
> -                        if (lstrlenW(nmtb.pszText))
> +                        if (*nmtb.pszText)]
There is a behavior change with this modification. lstrlenW won't crash even if applications somehow
replaced pszText with null. So we might want to check that pszText is not null before deferencing it.
>                              lstrcpyW(btnInfo->text, nmtb.pszText);
>                          else if (nmtb.tbButton.iString >= 0 && 
>                              nmtb.tbButton.iString < infoPtr->nNumStrings)




More information about the wine-devel mailing list