Akihiro Sagawa : kernel32: Short circuit required length calculation.
Module: wine Branch: master Commit: 5d907050e235e7545c0c7f8fc0f041726e3db5a5 URL: http://source.winehq.org/git/wine.git/?a=commit;h=5d907050e235e7545c0c7f8fc0... Author: Akihiro Sagawa <sagawa.aki(a)gmail.com> Date: Fri Sep 23 00:06:15 2016 +0900 kernel32: Short circuit required length calculation. Signed-off-by: Akihiro Sagawa <sagawa.aki(a)gmail.com> Signed-off-by: Alexandre Julliard <julliard(a)winehq.org> --- dlls/kernel32/locale.c | 23 ++++++++++++++--------- 1 file changed, 14 insertions(+), 9 deletions(-) diff --git a/dlls/kernel32/locale.c b/dlls/kernel32/locale.c index 24911e8..422d63f 100644 --- a/dlls/kernel32/locale.c +++ b/dlls/kernel32/locale.c @@ -3207,17 +3207,22 @@ INT WINAPI LCMapStringEx(LPCWSTR name, DWORD flags, LPCWSTR src, INT srclen, LPW { INT len; - for (len = 0; srclen; src++, srclen--) + if (flags & NORM_IGNORESYMBOLS) { - WCHAR wch = *src; - /* tests show that win2k just ignores NORM_IGNORENONSPACE, - * and skips white space and punctuation characters for - * NORM_IGNORESYMBOLS. - */ - if ((flags & NORM_IGNORESYMBOLS) && (get_char_typeW(wch) & (C1_PUNCT | C1_SPACE))) - continue; - len++; + for (len = 0; srclen; src++, srclen--) + { + WCHAR wch = *src; + /* tests show that win2k just ignores NORM_IGNORENONSPACE, + * and skips white space and punctuation characters for + * NORM_IGNORESYMBOLS. + */ + if (get_char_typeW(wch) & (C1_PUNCT | C1_SPACE)) + continue; + len++; + } } + else + len = srclen; return len; }
participants (1)
-
Alexandre Julliard