mirror of
https://github.com/GrammaticalFramework/gf-core.git
synced 2026-04-23 11:42:49 -06:00
Remove ununsed GF.Source.SharedString module.
This commit is contained in:
@@ -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'
|
|
||||||
Reference in New Issue
Block a user