import PrimPacked
import GlaExts
-import Addr ( Addr(..) )
+import PrelAddr ( Addr(..) )
#if __GLASGOW_HASKELL__ < 407
import MutableArray ( MutableArray(..) )
#else
import PrelArr ( STArray(..), newSTArray )
-import IOExts ( hPutBuf, hPutBufBA )
+import IOExts ( hPutBufFull, hPutBufBAFull )
#endif
-- ForeignObj is now exported abstractly.
#if __GLASGOW_HASKELL__ >= 303
-import qualified PrelForeign as Foreign ( ForeignObj(..) )
+import PrelForeign ( ForeignObj(..) )
#else
import Foreign ( ForeignObj(..) )
#endif
[] ->
-- no match, add it to table by copying out the
-- the string into a ByteArray
- case copySubStrFO (_ForeignObj fo#) (I# start#) (I# len#) of
+ case copySubStrFO (ForeignObj fo#) (I# start#) (I# len#) of
#if __GLASGOW_HASKELL__ < 405
(ByteArray _ barr#) ->
#else
-- entry with same length and compare byte by byte.
case bucket_match ls start# len# fo# of
Nothing ->
- case copySubStrFO (_ForeignObj fo#) (I# start#) (I# len#) of
+ case copySubStrFO (ForeignObj fo#) (I# start#) (I# len#) of
#if __GLASGOW_HASKELL__ < 405
(ByteArray _ barr#) ->
#else
mkFastSubString (A# a#) (I# start#) (I# len#) =
mkFastString# (addrOffset# a# start#) len#
-mkFastSubStringFO :: _ForeignObj -> Int -> Int -> FastString
-mkFastSubStringFO (_ForeignObj fo#) (I# start#) (I# len#) =
+mkFastSubStringFO :: ForeignObj -> Int -> Int -> FastString
+mkFastSubStringFO (ForeignObj fo#) (I# start#) (I# len#) =
mkFastSubStringFO# fo# start# len#
\end{code}
| otherwise = hPutBufBA handle (ByteArray bot bot ba#) (I# l#)
#else
| otherwise = do mba <- stToIO $ unsafeThawByteArray (ByteArray (bot::Int) bot ba#)
- hPutBufBA handle mba (I# l#)
+ hPutBufBAFull handle mba (I# l#)
#endif
where
bot = error "hPutFS.ba"
hPutFS handle (CharStr a# l#)
| l# ==# 0# = return ()
+#if __GLASGOW_HASKELL__ < 407
| otherwise = hPutBuf handle (A# a#) (I# l#)
-
+#else
+ | otherwise = hPutBufFull handle (A# a#) (I# l#)
+#endif
#endif
\end{code}