on master help sign in
Use cloneSliceUnsafeAs in cloneAs
ed07663Harendra Kumar
core/src/Streamly/Internal/Data/MutArray/Type.hs+2−2
@@ -2103,8 +2103,8 @@ cloneAs ps src =
2103 liftIO $ do
2103 liftIO $ do
2104 let startSrc = arrStart src
2104 let startSrc = arrStart src
2105 srcLen = arrEnd src - startSrc
2105 srcLen = arrEnd src - startSrc
2106− newArrContents <- Unboxed.newBytesAs ps srcLen
2106+ newArrContents <-
2107− putSliceUnsafe (arrContents src) startSrc newArrContents 0 srcLen
2107+ Unboxed.cloneSliceUnsafeAs ps startSrc srcLen (arrContents src)
2108 return $ MutArray newArrContents 0 srcLen srcLen
2108 return $ MutArray newArrContents 0 srcLen srcLen
2109
2109
2110{-# INLINE clone #-}
2110{-# INLINE clone #-}
core/src/Streamly/Internal/Data/Serialize/Type.hs+1
@@ -283,6 +283,7 @@ instance Serialize (Array a) where
283 $ "deserializeAt: accessing array at offset = "
283 $ "deserializeAt: accessing array at offset = "
284 ++ show (off2 - 1)
284 ++ show (off2 - 1)
285 ++ " max valid offset = " ++ show (len - 1)
285 ++ " max valid offset = " ++ show (len - 1)
286+ -- XXX Use MutByteArray.cloneSliceUnsafe
286 let slice = MutArray.MutArray arr off1 off2 off2
287 let slice = MutArray.MutArray arr off1 off2 off2
287 newArr <- MutArray.clone slice
288 newArr <- MutArray.clone slice
288 pure (off2, Array.unsafeFreeze newArr)
289 pure (off2, Array.unsafeFreeze newArr)