on master help sign in
encodeUtf8_1: get my arithmetic right :-(
commit4f33beaa5fb5fa997fe2e1f93bf6b2b4f14ce2b2 authorBryan O'Sullivan <bos@serpentine.com> dateTue 7 Jan 2014, 01:54 (13 years ago) parent7e2c78e
1 file changed+2−1
Data/Text/Encoding.hs+2−1
Data/Text/Encoding.hs+2−1
@@ -451,7 +451,8 @@ encodeUtf8_1 (Text arr off len)
451451 {-# NOINLINE resize #-}
452452 ensure k n fp ptr go = {-# SCC "encodeUtf8_1/ensure" #-} do
453453 fp' <- resize k fp ptr
454− go n fp' (unsafeForeignPtrToPtr fp')
454+ let !m = ptr `minusPtr` unsafeForeignPtrToPtr fp
455+ go n fp' (unsafeForeignPtrToPtr fp' `plusPtr` m)
455456 do1 ptr n w k = poke8 ptr w >> k (n+1) (ptr `plusPtr` 1)
456457 loop act !n0 fp !ptr0 = hot n0 ptr0
457458 where hot !n !ptr