@@ -26,7 +26,7 @@ module Text.Libyaml
2626import qualified Data.ByteString.Internal as B
2727import qualified Data.ByteString.Char8 as B8
2828import qualified Data.ByteString
29−import Data.ByteString (ByteString)
29+import Data.ByteString (ByteString, packCStringLen)
3030import Control.Monad
3131import Foreign.C
3232import Foreign.Ptr
@@ -246,13 +246,11 @@ getEvent er = do
246246 let yvalue' = castPtr yvalue
247247 let ytag' = castPtr ytag
248248 let ylen' = fromEnum ylen
249− let ylen'' = toEnum $ fromEnum ylen
250− bs <- B.create ylen' $ \dest -> B.memcpy dest yvalue' ylen''
249+ bs <- packCStringLen (yvalue', ylen')
251250 tagbs <-
252251 if ytag_len' == 0
253252 then return Data.ByteString.empty
254− else B.create ytag_len'
255− $ \dest -> B.memcpy dest ytag' (toEnum ytag_len')
253+ else packCStringLen (ytag', ytag_len')
256254 let style = toEnum $ fromEnum ystyle
257255 yanchor <- c_get_scalar_anchor er
258256 anchor <- if yanchor == nullPtr