Changeset 3928 for src/Pugs/Run/Perl5.hs

Show
Ignore:
Timestamp:
05/27/05 00:33:15 (4 years ago)
Author:
autrijus
svk:copy_cache_prev:
5515
Message:

* handle ref types in Val casting.

Files:
1 modified

Legend:

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

    r3927 r3928  
    9090valToIv :: PugsVal -> IO CInt 
    9191valToIv ptr = do 
    92     val <- deVal ptr 
    93     fmap fromInteger (fromVal'' val) 
     92    val     <- deVal ptr 
     93    env     <- askPerl5Env 
     94    VInt x  <- runEvalIO env $ fmap VInt (fromVal val) 
     95    return $ fromInteger x 
    9496 
    9597valToNv :: PugsVal -> IO CDouble 
    9698valToNv ptr = do 
    97     val <- deVal ptr 
    98     fmap fromRational (fromVal'' val) 
     99    val     <- deVal ptr 
     100    env     <- askPerl5Env 
     101    VRat x  <- runEvalIO env $ fmap VInt (fromVal val) 
     102    return $ fromRational x 
    99103 
    100104valToPv :: PugsVal -> IO CString 
    101105valToPv ptr = do 
    102     val <- deVal ptr 
    103     newCString =<< (fromVal'' val) 
    104  
    105 fromVal'' :: (Value a) => Val -> IO a 
    106 fromVal'' = return . vCast 
     106    val     <- deVal ptr 
     107    env     <- askPerl5Env 
     108    VStr x  <- runEvalIO env $ fmap VInt (fromVal val) 
     109    newCString x 
    107110 
    108111mkSvRef :: PerlSV -> IO PugsVal