on master help sign in
Better SCC annotations for lazy unstreamChunks

--HG-- extra : convert_revision : 027353af71d2e4df07d5384b8f30b5f05381473e

commit1caa3f90c49d1d06811e273430adc06c65b2e7fa authorBryan O'Sullivan <bos@serpentine.com> dateTue 12 Oct 2010, 05:26 (16 years ago) parenta80bdad
1 file changed+4−2
Data/Text/Lazy/Fusion.hs+4−2
Data/Text/Lazy/Fusion.hs+4−2
@@ -54,7 +54,8 @@ unstreamChunks chunkSize (Stream next s0 len0)
5454 | isEmpty len0 = Empty
5555 | otherwise = outer s0
5656 where
57− outer s = case next s of
57+ outer s = {-# SCC "unstreamChunks/outer" #-}
58+ case next s of
5859 Done -> Empty
5960 Skip s' -> outer s'
6061 Yield x s' -> I.Text arr 0 len `chunk` outer s''
@@ -64,12 +65,13 @@ unstreamChunks chunkSize (Stream next s0 len0)
6465 unknownLength = 4
6566 inner marr len s !i
6667 | i + 1 >= chunkSize = return (marr, (s,i))
67− | i + 1 >= len = do
68+ | i + 1 >= len = {-# SCC "unstreamChunks/resize" #-} do
6869 let newLen = min (len `shiftL` 1) chunkSize
6970 marr' <- A.new newLen
7071 A.copyM marr' 0 marr 0 len
7172 inner marr' newLen s i
7273 | otherwise =
74+ {-# SCC "unstreamChunks/inner" #-}
7375 case next s of
7476 Done -> return (marr,(s,i))
7577 Skip s' -> inner marr len s' i