@@ -54,14 +54,15 @@ module Data.Attoparsec.ByteString.Buffer
5454 ) where
5555
5656import Control.Exception (assert )
57- import Data.ByteString.Internal (ByteString (.. ), memcpy , nullForeignPtr )
57+ import Data.ByteString.Internal (ByteString (.. ), nullForeignPtr )
5858import Data.Attoparsec.Internal.Fhthagn (inlinePerformIO )
5959import Data.Attoparsec.Internal.Compat
6060import Data.List (foldl1' )
6161import Data.Monoid as Mon (Monoid (.. ))
6262import Data.Semigroup (Semigroup (.. ))
6363import Data.Word (Word8 )
6464import Foreign.ForeignPtr (ForeignPtr , withForeignPtr )
65+ import Foreign.Marshal.Utils (copyBytes )
6566import Foreign.Ptr (castPtr , plusPtr )
6667import Foreign.Storable (peek , peekByteOff , poke , sizeOf )
6768import GHC.ForeignPtr (mallocPlainForeignPtrBytes )
@@ -118,9 +119,9 @@ append (Buf fp0 off0 len0 cap0 gen0) !fp1 !off1 !len1 =
118119 then do
119120 let newgen = gen + 1
120121 poke (castPtr ptr0) newgen
121- memcpy (ptr0 `plusPtr` (off0+ len0))
122- (ptr1 `plusPtr` off1)
123- (fromIntegral len1)
122+ copyBytes (ptr0 `plusPtr` (off0+ len0))
123+ (ptr1 `plusPtr` off1)
124+ (fromIntegral len1)
124125 return (Buf fp0 off0 newlen cap0 newgen)
125126 else do
126127 let newcap = newlen * 2
@@ -129,9 +130,9 @@ append (Buf fp0 off0 len0 cap0 gen0) !fp1 !off1 !len1 =
129130 let ptr = ptr_ `plusPtr` genSize
130131 newgen = 1
131132 poke (castPtr ptr_) newgen
132- memcpy ptr (ptr0 `plusPtr` off0) (fromIntegral len0)
133- memcpy (ptr `plusPtr` len0) (ptr1 `plusPtr` off1)
134- (fromIntegral len1)
133+ copyBytes ptr (ptr0 `plusPtr` off0) (fromIntegral len0)
134+ copyBytes (ptr `plusPtr` len0) (ptr1 `plusPtr` off1)
135+ (fromIntegral len1)
135136 return (Buf fp genSize newlen newcap newgen)
136137
137138length :: Buffer -> Int
0 commit comments