@@ -98,8 +98,7 @@ import Text.Read (readPrec, readListPrec, readListPrecDefault)
99import GHC.Base (Addr#, realWorld#)
99import GHC.Base (Addr#, realWorld#)
100import GHC.Exts (IsList, IsString(..))
100import GHC.Exts (IsList, IsString(..))
101−import GHC.ForeignPtr
101+import GHC.ForeignPtr (ForeignPtr(..), newForeignPtr_)
102− (ForeignPtr(..), mallocPlainForeignPtrAlignedBytes, newForeignPtr_)
103import GHC.IO (IO(IO), unsafePerformIO)
102import GHC.IO (IO(IO), unsafePerformIO)
104import GHC.Ptr (Ptr(..))
103import GHC.Ptr (Ptr(..))
@@ -112,6 +111,7 @@ import Streamly.SVar (adaptState)
112import Streamly.FileSystem.FDIO (IOVec(..))
111import Streamly.FileSystem.FDIO (IOVec(..))
114+import qualified Streamly.Memory.Malloc as Malloc
115import qualified Streamly.Streams.StreamD.Type as D
115import qualified Streamly.Streams.StreamD.Type as D
116import qualified Streamly.Streams.StreamK as K
116import qualified Streamly.Streams.StreamK as K
117import qualified GHC.Exts as Exts
117import qualified GHC.Exts as Exts
@@ -237,7 +237,7 @@ bytesToElemCount x n =
237newArray :: forall a. Storable a => Int -> IO (Array a)
237newArray :: forall a. Storable a => Int -> IO (Array a)
238newArray count = do
238newArray count = do
239 let size = count * sizeOf (undefined :: a)
239 let size = count * sizeOf (undefined :: a)
240− fptr <- mallocPlainForeignPtrAlignedBytes size (alignment (undefined :: a))
240+ fptr <- Malloc.mallocForeignPtrAlignedBytes size (alignment (undefined :: a))
241 let p = unsafeForeignPtrToPtr fptr
241 let p = unsafeForeignPtrToPtr fptr
242 return $ Array
242 return $ Array
243 { aStart = fptr
243 { aStart = fptr
@@ -275,7 +275,8 @@ snoc arr@Array {..} x = do
275 let oldStart = unsafeForeignPtrToPtr aStart
275 let oldStart = unsafeForeignPtrToPtr aStart
276 size = aEnd `minusPtr` oldStart
276 size = aEnd `minusPtr` oldStart
277 newSize = (size + (sizeOf (undefined :: a)))
277 newSize = (size + (sizeOf (undefined :: a)))
278+ newPtr <- Malloc.mallocForeignPtrAlignedBytes
278− newPtr <- mallocPlainForeignPtrAlignedBytes newSize (alignment (undefined :: a))
279+ newSize (alignment (undefined :: a))
279 withForeignPtr newPtr $ \pNew -> do
280 withForeignPtr newPtr $ \pNew -> do
280 memcpy (castPtr pNew) (castPtr oldStart) size
281 memcpy (castPtr pNew) (castPtr oldStart) size
281 poke (pNew `plusPtr` size) x
282 poke (pNew `plusPtr` size) x
@@ -298,7 +299,7 @@ realloc newSize Array{..} = do
298 assert (aEnd <= aBound) (return ())
299 assert (aEnd <= aBound) (return ())
299 let oldStart = unsafeForeignPtrToPtr aStart
300 let oldStart = unsafeForeignPtrToPtr aStart
300 let size = aEnd `minusPtr` oldStart
301 let size = aEnd `minusPtr` oldStart
301− newPtr <- mallocPlainForeignPtrAlignedBytes
302+ newPtr <- Malloc.mallocForeignPtrAlignedBytes
302 newSize (alignment (undefined :: a))
303 newSize (alignment (undefined :: a))
303 withForeignPtr newPtr $ \pNew -> do
304 withForeignPtr newPtr $ \pNew -> do
304 memcpy (castPtr pNew) (castPtr oldStart) size
305 memcpy (castPtr pNew) (castPtr oldStart) size