Optimize conversion of single character in gconv
authorUlrich Drepper <drepper@gmail.com>
Sat, 14 May 2011 05:03:08 +0000 (01:03 -0400)
committerUlrich Drepper <drepper@gmail.com>
Sat, 14 May 2011 05:03:08 +0000 (01:03 -0400)
ChangeLog
iconv/loop.c

index 6c125e3..36a3708 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,7 +1,8 @@
 2011-05-14  Ulrich Drepper  <drepper@gmail.com>
 
        * iconv/loop.c (SINGLE) [STORE_REST]: Add input bytes to bytebuf before
-       storing incomplete byte sequence in state object.
+       storing incomplete byte sequence in state object.  Avoid testing for
+       guaranteed too small input if we know there is enough data available.
 
 2011-05-11  Andreas Schwab  <schwab@redhat.com>
 
index 72fef94..4f43062 100644 (file)
@@ -395,7 +395,8 @@ SINGLE(LOOPFCT) (struct __gconv_step *step,
 #endif
 
   /* Are there enough bytes in the input buffer?  */
-  if (__builtin_expect (inptr + (MIN_NEEDED_INPUT - inlen) > inend, 0))
+  if (MIN_NEEDED_INPUT > 1
+      && __builtin_expect (inptr + (MIN_NEEDED_INPUT - inlen) > inend, 0))
     {
       *inptrp = inend;
 #ifdef STORE_REST