From 0df5b39a1e9c8aaf480e3f8667d7967e08bbef2b Mon Sep 17 00:00:00 2001 From: Rich Felker Date: Fri, 10 Nov 2017 13:40:12 -0500 Subject: 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. --- src/locale/iconv.c | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) (limited to 'src/locale') 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: -- cgit v1.2.1