Show
Ignore:
Timestamp:
10/11/06 05:35:30 (2 years ago)
Author:
audreyt
Message:

* Rename DrIFT.YAML's addressOf to stableAddressOf,

as it's returning StablePtr?'s address, not the real pointer.

Files:
1 modified

Legend:

Unmodified
Added
Removed
  • src/Pugs/Prim/Yaml.hs

    r12800 r14193  
    11{-# OPTIONS_GHC -fglasgow-exts -fno-warn-orphans #-} 
    22 
    3 module Pugs.Prim.Yaml ( 
    4   evalYaml, dumpYaml, addressOf, 
    5 ) where 
     3module Pugs.Prim.Yaml ( evalYaml, dumpYaml ) where 
    64import Pugs.Internals 
    75import Pugs.AST 
     
    7270strNode = mkNode . EStr . packBuf 
    7371 
    74 {- 
    75 addressOf :: a -> IO Int 
    76 addressOf x = do 
    77     ptr <- newStablePtr x 
    78     return (castStablePtrToPtr ptr `minusPtr` (nullPtr :: Ptr ())) 
    79 -} 
    80  
    8172toYaml :: (?seen :: IntSet.IntSet) => Val -> Eval YamlNode 
    8273toYaml VUndef       = return $ mkNode ENil 
     
    8475toYaml (VStr str)   = return $ strNode (encodeUTF8 str) 
    8576toYaml v@(VRef r)   = do 
    86     ptr <- liftIO $ addressOf r 
     77    ptr <- liftIO $ stableAddressOf r 
    8778    if IntSet.member ptr ?seen then return nilNode{ n_anchor = AReference ptr } else do 
    8879        let ?seen = IntSet.insert ptr ?seen