@@ -29,6 +29,7 @@ import Data.Text.Lazy.Internal
2929import qualified Data.Text.Internal as I
3030import qualified Data.Text.Array as A
3131import Data.Text.UnsafeChar (unsafeWrite)
32+import Data.Text.UnsafeShift (shiftL)
3233import Data.Text.Unsafe (iter)
3334import Data.Int (Int64)
3435
@@ -64,7 +65,7 @@ unstreamChunks chunkSize (Stream next s0 len0)
6465 inner marr len s i
6566 | i + 1 >= chunkSize = return (marr, (s,i))
6667 | i + 1 >= len = do
67− let newLen = min (len * 2) chunkSize
68+ let newLen = min (len `shiftL` 1) chunkSize
6869 marr' <- A.unsafeNew newLen
6970 A.copy marr marr'
7071 inner marr' newLen s i