Changeset 3911 for src/Pugs/Embed/Perl5.hs
- Timestamp:
- 05/26/05 14:38:41 (4 years ago)
- svk:copy_cache_prev:
- 5482
- Files:
-
- 1 modified
-
src/Pugs/Embed/Perl5.hs (modified) (4 diffs)
Legend:
- Unmodified
- Added
- Removed
-
src/Pugs/Embed/Perl5.hs
r3901 r3911 26 26 svToVBool = constFail 27 27 28 svToAny :: PerlSV -> IO a28 svToAny :: PerlSV -> IO (Maybe a) 29 29 svToAny = constFail 30 30 … … 73 73 perl5_SvTRUE :: PerlSV -> IO Bool 74 74 foreign import ccall "perl5.h perl5_SvPtr" 75 perl5_SvPtr :: PerlSV -> IO ( StablePtr a)75 perl5_SvPtr :: PerlSV -> IO (Ptr ()) 76 76 foreign import ccall "perl5.h perl5_newSVpv" 77 77 perl5_newSVpv :: CString -> IO PerlSV … … 79 79 perl5_newSViv :: CInt -> IO PerlSV 80 80 foreign import ccall "perl5.h perl5_newSVptr" 81 perl5_newSVptr :: StablePtr a-> IO PerlSV81 perl5_newSVptr :: Ptr () -> IO PerlSV 82 82 foreign import ccall "perl5.h perl5_call" 83 83 perl5_call :: CString -> CInt -> Ptr PerlSV -> CInt -> IO PerlSV … … 103 103 anyToSV :: a -> IO PerlSV 104 104 anyToSV x = do 105 ptr <- newStablePtr x105 ptr <- fmap castStablePtrToPtr $ newStablePtr x 106 106 perl5_newSVptr ptr 107 107 108 svToAny :: PerlSV -> IO a108 svToAny :: PerlSV -> IO (Maybe a) 109 109 svToAny sv = do 110 110 ptr <- perl5_SvPtr sv 111 deRefStablePtr ptr 111 if ptr == nullPtr 112 then return Nothing 113 else fmap Just . deRefStablePtr $ castPtrToStablePtr ptr 112 114 113 115 vstrToSV :: String -> IO PerlSV
