File tree Expand file tree Collapse file tree 1 file changed +6
-4
lines changed
core/src/Streamly/Internal/Data/Array Expand file tree Collapse file tree 1 file changed +6
-4
lines changed Original file line number Diff line number Diff line change @@ -287,12 +287,14 @@ unsafePinnedAsPtr arr f = do
287287{-# INLINE unsafeAsForeignPtr #-}
288288unsafeAsForeignPtr
289289 :: MonadIO m => Array a -> (ForeignPtr a -> Int -> m b ) -> m b
290- unsafeAsForeignPtr arr@ Array {.. } f =
291- unsafePinnedAsPtr arr finner
290+ unsafeAsForeignPtr arr0 f = do
291+ let marr = unsafeThaw arr0
292+ pinned <- liftIO $ MA. pin marr
293+ MA. unsafeAsPtr pinned (finner (MA. arrContents pinned))
292294 where
293- finner (Ptr addr# ) i =
295+ finner arrContents_ (Ptr addr# ) i =
294296 let fptrContents =
295- PlainPtr (Unboxed. getMutByteArray# arrContents )
297+ PlainPtr (Unboxed. getMutByteArray# arrContents_ )
296298 fptr = ForeignPtr addr# fptrContents
297299 in f fptr i
298300
You can’t perform that action at this time.
0 commit comments