Show
Ignore:
Timestamp:
05/27/05 02:25:26 (4 years ago)
Author:
autrijus
svk:copy_cache_prev:
5515
Message:

* all should work except this memory overflow thing

Files:
1 modified

Legend:

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

    r3936 r3938  
    4747vnumToSV = constFail 
    4848 
    49 callPerl5 :: String -> [PerlSV] -> PerlSV -> CInt -> IO PerlSV 
    50 callPerl5 _ _ _ = constFail 
     49callPerl5 :: PerlSV -> Maybe PerlSV -> [PerlSV] -> PerlSV -> CInt -> IO PerlSV 
     50callPerl5 _ _ _ _ = constFail 
    5151 
    5252canPerl5 :: PerlSV -> String -> IO Bool 
     
    100100foreign import ccall "perl5.h perl5_set_svref" 
    101101    perl5_set_svref :: CString -> PugsVal -> IO () 
    102 foreign import ccall "perl5.h perl5_call" 
    103     perl5_call :: CString -> CInt -> Ptr PerlSV -> PerlSV -> CInt -> IO PerlSV 
     102foreign import ccall "perl5.h perl5_apply" 
     103    perl5_apply :: PerlSV -> PerlSV -> Ptr PerlSV -> PerlSV -> CInt -> IO PerlSV 
    104104foreign import ccall "perl5.h perl5_can" 
    105105    perl5_can :: PerlSV -> CString -> IO Bool 
     
    157157vnumToSV int = perl5_newSVnv (realToFrac int) 
    158158 
    159 callPerl5 :: String -> [PerlSV] -> PerlSV -> CInt -> IO PerlSV 
    160 callPerl5 str args env cxt = do 
    161     withCString str $ \cstr -> do 
    162         withArray args $ \argv -> do 
    163             perl5_call cstr (toEnum $ length args) argv env cxt 
     159callPerl5 :: PerlSV -> PerlSV -> [PerlSV] -> PerlSV -> CInt -> IO PerlSV 
     160callPerl5 sub inv args env cxt = do 
     161    withArray0 nullPtr args $ \argv -> do 
     162        perl5_apply sub inv argv env cxt 
    164163 
    165164canPerl5 :: PerlSV -> String -> IO Bool