From: Rich Felker Date: Fri, 10 Nov 2017 18:40:12 +0000 (-0500) Subject: simplify/optimize iconv utf-8 case X-Git-Tag: v1.1.19~53 X-Git-Url: https://git.librecmc.org/?a=commitdiff_plain;h=0df5b39a1e9c8aaf480e3f8667d7967e08bbef2b;hp=9eb6dd5165b803715f82b9f5d4b557878f77a580;p=oweals%2Fmusl.git simplify/optimize iconv utf-8 case the special case where mbrtowc returns 0 but consumed 1 byte of input does not need to be considered, because the short-circuit for low bytes already covered that case. --- diff --git a/src/locale/iconv.c b/src/locale/iconv.c index af0d8283..fd51b73e 100644 --- a/src/locale/iconv.c +++ b/src/locale/iconv.c @@ -195,11 +195,10 @@ size_t iconv(iconv_t cd, char **restrict in, size_t *restrict inb, char **restri switch (type) { case UTF_8: - if (c < 128) break; // optimization + if (c < 128) break; l = mbrtowc_utf8(&wc, *in, *inb, &st); - if (!l) l++; - else if (l == (size_t)-1) goto ilseq; - else if (l == (size_t)-2) goto starved; + if (l == (size_t)-1) goto ilseq; + if (l == (size_t)-2) goto starved; c = wc; break; case US_ASCII: