utf8.c: Use slightly more efficient macro blead
authorKarl Williamson <khw@cpan.org>
Fri, 25 Jul 2014 20:57:33 +0000 (14:57 -0600)
committerKarl Williamson <khw@cpan.org>
Fri, 25 Jul 2014 21:06:05 +0000 (15:06 -0600)
Lowercasing a Latin-1 range character results in a latin-1 range
character, so we can use the more restrictive macros that is slightly
more efficient than the general ones.  (This difference only is
applicable on EBCDIC platforms, as the macros all expand to nothing on
ASCII ones.

utf8.c

index aa63504..bfde692 100644 (file)
--- a/utf8.c
+++ b/utf8.c
@@ -1495,8 +1495,10 @@ S_to_lower_latin1(const U8 c, U8* p, STRLEN *lenp)
            *lenp = 1;
        }
        else {
-           *p = UTF8_TWO_BYTE_HI(converted);
-           *(p+1) = UTF8_TWO_BYTE_LO(converted);
+            /* Result is known to always be < 256, so can use the EIGHT_BIT
+             * macros */
+           *p = UTF8_EIGHT_BIT_HI(converted);
+           *(p+1) = UTF8_EIGHT_BIT_LO(converted);
            *lenp = 2;
        }
     }