Changeset 3921 for src/Pugs/Run

Show
Ignore:
Timestamp:
05/26/05 23:40:37 (3 years ago)
Author:
autrijus
svk:copy_cache_prev:
5482
Message:

* iv/pv/nv to Val promotion done.

Files:
1 modified

Legend:

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

    r3920 r3921  
    1 {-# OPTIONS_GHC -fglasgow-exts -cpp -fno-warn-unused-imports #-} 
     1{-# OPTIONS_GHC -fglasgow-exts -cpp -fno-warn-unused-binds -fno-warn-unused-imports #-} 
    22 
    33module Pugs.Run.Perl5 () where 
     
    99import Pugs.Embed.Perl5 
    1010import Foreign 
     11import Foreign.C.Types 
     12import Foreign.C.String 
    1113 
    1214foreign export ccall "pugs_MkSvRef" 
    1315    mkSvRef :: PerlSV -> IO PugsVal 
    1416 
     17foreign export ccall "pugs_IvToVal" 
     18    ivToVal :: CInt -> IO PugsVal 
     19 
     20foreign export ccall "pugs_NvToVal" 
     21    nvToVal :: CDouble -> IO PugsVal 
     22 
     23foreign export ccall "pugs_PvToVal" 
     24    pvToVal :: CString -> IO PugsVal 
     25 
     26mkVal :: Val -> IO PugsVal 
     27mkVal val = fmap castStablePtrToPtr $ newStablePtr val 
     28 
    1529mkSvRef :: PerlSV -> IO PugsVal 
    16 mkSvRef sv = fmap castStablePtrToPtr $ newStablePtr (PerlSV sv) 
     30mkSvRef = mkVal . PerlSV 
     31 
     32ivToVal :: CInt -> IO PugsVal 
     33ivToVal = mkVal . VInt . fromIntegral 
     34 
     35nvToVal :: CDouble -> IO PugsVal 
     36nvToVal = mkVal . VNum . realToFrac 
     37 
     38pvToVal :: CString -> IO PugsVal 
     39pvToVal = (mkVal . VStr =<<) . peekCString 
    1740 
    1841#endif