Changeset 3924 for src/Pugs/Run

Show
Ignore:
Timestamp:
05/26/05 23:54:07 (3 years ago)
Author:
autrijus
svk:copy_cache_prev:
5515
Message:

* iv/nv/pv two-way casting all done.

Files:
1 modified

Legend:

Unmodified
Added
Removed
  • src/Pugs/Run/Perl5.hs

    r3922 r3924  
    1111import Foreign.C.Types 
    1212import Foreign.C.String 
     13 
     14foreign export ccall "pugs_ValToSv" 
     15    valToSv :: PugsVal -> IO PerlSV 
    1316 
    1417foreign export ccall "pugs_MkSvRef" 
     
    2730mkVal val = fmap castStablePtrToPtr $ newStablePtr val 
    2831 
     32deVal :: PugsVal -> IO Val 
     33deVal ptr = deRefStablePtr (castPtrToStablePtr ptr) 
     34 
     35valToSv :: PugsVal -> IO PerlSV 
     36valToSv ptr = do 
     37    val <- deVal ptr 
     38    case val of 
     39        PerlSV sv   -> return sv 
     40        _           -> mkValRef val 
     41 
    2942mkSvRef :: PerlSV -> IO PugsVal 
    3043mkSvRef = mkVal . PerlSV