Remove ununsed GF.Source.SharedString module.

This commit is contained in:
bjorn
2008-11-27 08:36:18 +00:00
parent c9c07f8e68
commit a4f0d4f0d7

View File

@@ -1,20 +0,0 @@
module GF.Source.SharedString (shareString) where
import Data.Map as M
import Data.IORef
import qualified Data.ByteString.Char8 as BS
import System.IO.Unsafe (unsafePerformIO)
{-# NOINLINE stringPoolRef #-}
stringPoolRef :: IORef (M.Map BS.ByteString BS.ByteString)
stringPoolRef = unsafePerformIO $ newIORef M.empty
{-# NOINLINE shareString #-}
shareString :: BS.ByteString -> BS.ByteString
shareString s = unsafePerformIO $ do
stringPool <- readIORef stringPoolRef
case M.lookup s stringPool of
Just s' -> return s'
Nothing -> do let s' = BS.copy s
writeIORef stringPoolRef $! M.insert s' s' stringPool
return s'