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

Show
Ignore:
Timestamp:
05/27/05 01:30:01 (4 years ago)
Author:
autrijus
svk:copy_cache_prev:
5515
Message:

* segfault solved

Files:
1 modified

Legend:

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

    r3928 r3934  
    6262pugs_apply subPtr invPtr argsPtr = do 
    6363    env     <- askPerl5Env 
     64    -- print "DEREF #1" 
    6465    sub     <- deVal subPtr 
     66    -- print "DEREF #2" 
    6567    inv     <- deValMaybe invPtr 
     68    -- print "DEREF #3" 
    6669    args    <- mapM deVal =<< peekArray0 nullPtr argsPtr 
    6770    let subExp = case sub of 
     
    7578 
    7679deVal :: PugsVal -> IO Val 
    77 deVal ptr = deRefStablePtr (castPtrToStablePtr ptr) 
     80deVal ptr = do 
     81    -- print ("DEVAL", ptr) 
     82    x <- deRefStablePtr (castPtrToStablePtr ptr) 
     83    -- print ("INTO", x) 
     84    return x 
    7885 
    7986deValMaybe :: PugsVal -> IO (Maybe Val) 
     
    8390valToSv :: PugsVal -> IO PerlSV 
    8491valToSv ptr = do 
     92    -- print "1" 
    8593    val <- deVal ptr 
    8694    case val of 
     
    9098valToIv :: PugsVal -> IO CInt 
    9199valToIv ptr = do 
     100    -- print "2" 
    92101    val     <- deVal ptr 
    93102    env     <- askPerl5Env 
     
    97106valToNv :: PugsVal -> IO CDouble 
    98107valToNv ptr = do 
     108    -- print "3" 
    99109    val     <- deVal ptr 
    100110    env     <- askPerl5Env 
     
    104114valToPv :: PugsVal -> IO CString 
    105115valToPv ptr = do 
     116    -- print "4" 
    106117    val     <- deVal ptr 
    107118    env     <- askPerl5Env 
     
    119130 
    120131pvToVal :: CString -> IO PugsVal 
    121 pvToVal = (mkVal . VStr =<<) . peekCString 
     132pvToVal cstr = do 
     133    str <- peekCString cstr 
     134    ptr <- mkVal $ VStr str 
     135    -- print ("PVTOVAL", str, ptr) 
     136    return ptr 
    122137 
    123138#endif