on master help sign in
Change argument order of put/modifyIndex in Generic array
commitb56e0a107281aea5f4b55b477fd228b063b279a2 authorHarendra Kumar <harendra@composewell.com> dateThu 29 Dec 2022, 04:54 (4 years ago) parent133e20a
3 files changed+15−15
core/src/Streamly/Internal/Data/Array/Generic.hs+2−2 core/src/Streamly/Internal/Data/Array/Generic/Mut/Type.hs+12−12 core/src/Streamly/Internal/Data/Ring.hs+1−1
core/src/Streamly/Internal/Data/Array/Generic.hs+2−2
@@ -137,7 +137,7 @@ fromStreamDN limit str = do
137137 marr <- liftIO $ MArray.new (max limit 0)
138138 i <-
139139 D.foldlM'
140− (\i x -> i `seq` liftIO $ MArray.putIndexUnsafe i x marr >> return (i + 1))
140+ (\i x -> i `seq` liftIO $ MArray.putIndexUnsafe i marr x >> return (i + 1))
141141 (return 0) $
142142 D.take limit str
143143 return $ unsafeFreeze $ marr { MArray.arrLen = i }
@@ -320,7 +320,7 @@ putIndices arr = FL.rmapM (\ _ -> return ()) (FL.foldlM' step initial)
320320 initial = return $ unsafeThaw arr
321321
322322 step marr (i, x) = do
323− MArray.putIndexUnsafe i x marr
323+ MArray.putIndexUnsafe i marr x
324324 return marr
325325
326326-------------------------------------------------------------------------------
core/src/Streamly/Internal/Data/Array/Generic/Mut/Type.hs+12−12
@@ -251,8 +251,8 @@ new n@(I# n#) =
251251--
252252-- /Pre-release/
253253{-# INLINE putIndexUnsafe #-}
254−putIndexUnsafe :: forall m a. MonadIO m => Int -> a -> Array a -> m ()
255−putIndexUnsafe i x Array {..} =
254+putIndexUnsafe :: forall m a. MonadIO m => Int -> Array a -> a -> m ()
255+putIndexUnsafe i Array {..} x =
256256 liftIO
257257 $ IO
258258 $ \s# ->
@@ -268,14 +268,14 @@ invalidIndex label i =
268268-- | /O(1)/ Write the given element at the given index in the array.
269269-- Performs in-place mutation of the array.
270270--
271−-- >>> putIndex ix val arr = Array.modifyIndex ix (const (val, ())) arr
271+-- >>> putIndex ix arr val = Array.modifyIndex ix arr (const (val, ()))
272272--
273273-- /Pre-release/
274274{-# INLINE putIndex #-}
275−putIndex :: MonadIO m => Int -> a -> Array a -> m ()
276−putIndex i x arr@Array {..} =
275+putIndex :: MonadIO m => Int -> Array a -> a -> m ()
276+putIndex i arr@Array {..} x =
277277 if i >= 0 && i < arrLen
278− then putIndexUnsafe i x arr
278+ then putIndexUnsafe i arr x
279279 else invalidIndex "putIndex" i
280280
281281-- | Modify a given index of an array using a modifier function without checking
@@ -284,8 +284,8 @@ putIndex i x arr@Array {..} =
284284-- Unsafe because it does not check the bounds of the array.
285285--
286286-- /Pre-release/
287−modifyIndexUnsafe :: MonadIO m => Int -> (a -> (a, b)) -> Array a -> m b
288−modifyIndexUnsafe i f Array {..} = do
287+modifyIndexUnsafe :: MonadIO m => Int -> Array a -> (a -> (a, b)) -> m b
288+modifyIndexUnsafe i Array {..} f = do
289289 liftIO
290290 $ IO
291291 $ \s# ->
@@ -300,10 +300,10 @@ modifyIndexUnsafe i f Array {..} = do
300300-- | Modify a given index of an array using a modifier function.
301301--
302302-- /Pre-release/
303−modifyIndex :: MonadIO m => Int -> (a -> (a, b)) -> Array a -> m b
304−modifyIndex i f arr@Array {..} = do
303+modifyIndex :: MonadIO m => Int -> Array a -> (a -> (a, b)) -> m b
304+modifyIndex i arr@Array {..} f = do
305305 if i >= 0 && i < arrLen
306− then modifyIndexUnsafe i f arr
306+ then modifyIndexUnsafe i arr f
307307 else invalidIndex "modifyIndex" i
308308
309309-------------------------------------------------------------------------------
@@ -362,7 +362,7 @@ reallocWith label sizer reqSize arr = do
362362snocUnsafe :: MonadIO m => Array a -> a -> m (Array a)
363363snocUnsafe arr@Array {..} a = do
364364 assert (arrStart + arrLen < arrTrueLen) (return ())
365− putIndexUnsafe arrLen a arr
365+ putIndexUnsafe arrLen arr a
366366 return $ arr {arrLen = arrLen + 1}
367367
368368-- NOINLINE to move it out of the way and not pollute the instruction cache.
core/src/Streamly/Internal/Data/Ring.hs+1−1
@@ -40,7 +40,7 @@ createRing count = do
4040{-# INLINE unsafeInsertRing #-}
4141unsafeInsertRing :: Ring a -> Int -> a -> IO ()
4242unsafeInsertRing Ring{..} idx x = do
43− putIndexUnsafe (mod idx ringMax) x arr
43+ putIndexUnsafe (mod idx ringMax) arr x
4444 ref <- readIORef ringHead
4545 if (ref+1) < ringMax
4646 then modifyIORef' ringHead ( + 1)