on master help sign in
encodeUtf8_1: a little cosmetic work
commite4957a3a3a147faa5dea08ab0eb7581f46b71a0a authorBryan O'Sullivan <bos@serpentine.com> dateTue 7 Jan 2014, 00:23 (13 years ago) parent6dbd7d3
1 file changed+15−19
Data/Text/Encoding.hs+15−19
Data/Text/Encoding.hs+15−19
@@ -461,22 +461,20 @@ encodeUtf8_1 (Text arr off len)
461461 {-# INLINE loop #-}
462462 go1 = loop $ \ w !n !m fp ptr cont ->
463463 case w of
464− _| w <= 0x7F -> do1 ptr n m w cont
465− | w <= 0x7FF -> ensure 2 n m fp go2
466− | w < 0xD800 -> ensure 3 n m fp go3
467− | w > 0xDBFF -> ensure 3 n m fp go3
468− | otherwise -> ensure 4 n m fp go4
464+ _| w <= 0x7F -> do1 ptr n m w cont
465+ | w <= 0x7FF -> ensure 2 n m fp go2
466+ | w < 0xD800 || w > 0xDBFF -> ensure 3 n m fp go3
467+ | otherwise -> ensure 4 n m fp go4
469468 do2 ptr n m w k = do
470469 poke8 ptr m $ (w `shiftR` 6) + 0xC0
471470 poke8 ptr (m+1) $ (w .&. 0x3f) + 0x80
472471 k (n+1) (m+2)
473472 go2 = loop $ \ w !n !m fp ptr cont ->
474473 case w of
475− _| w <= 0x7F -> do1 ptr n m w cont
476− | w <= 0x7FF -> do2 ptr n m w cont
477− | w < 0xD800 -> ensure 3 n m fp go3
478− | w > 0xDBFF -> ensure 3 n m fp go3
479− | otherwise -> ensure 4 n m fp go4
474+ _| w <= 0x7F -> do1 ptr n m w cont
475+ | w <= 0x7FF -> do2 ptr n m w cont
476+ | w < 0xD800 || w > 0xDBFF -> ensure 3 n m fp go3
477+ | otherwise -> ensure 4 n m fp go4
480478 do3 ptr !n m w k = do
481479 poke8 ptr m $ (w `shiftR` 12) + 0xE0
482480 poke8 ptr (m+1) $ ((w `shiftR` 6) .&. 0x3F) + 0x80
@@ -484,21 +482,19 @@ encodeUtf8_1 (Text arr off len)
484482 k (n+1) (m+3)
485483 go3 = loop body where body w !n !m fp ptr cont =
486484 case w of
487− _| w <= 0x7F -> do1 ptr n m w cont
488− | w <= 0x7FF -> do2 ptr n m w cont
489− | w < 0xD800 -> do3 ptr n m w cont
490− | w > 0xDBFF -> do3 ptr n m w cont
491− | otherwise -> ensure 4 n m fp go4
485+ _| w <= 0x7F -> do1 ptr n m w cont
486+ | w <= 0x7FF -> do2 ptr n m w cont
487+ | w < 0xD800 || w > 0xDBFF -> do3 ptr n m w cont
488+ | otherwise -> ensure 4 n m fp go4
492489 {-# INLINE body #-}
493490 go4 !n0 !m0 fp ptr = do
494491 let hot !n !m
495492 | n == offLen = touchForeignPtr fp >> return (PS fp 0 m)
496493 | otherwise = do
497494 case A.unsafeIndex arr n of
498− w| w <= 0x7F -> do1 ptr n m w hot
499− | w <= 0x7FF -> do2 ptr n m w hot
500− | w < 0xD800 -> do3 ptr n m w hot
501− | w > 0xDBFF -> do3 ptr n m w hot
495+ w| w <= 0x7F -> do1 ptr n m w hot
496+ | w <= 0x7FF -> do2 ptr n m w hot
497+ | w < 0xD800 || w > 0xDBFF -> do3 ptr n m w hot
502498 | otherwise -> do
503499 let c = ord $ U16.chr2 w (A.unsafeIndex arr (n+1))
504500 poke8 ptr m $ (c `shiftR` 18) + 0xF0