Hs2lib 0.5.1 → 0.5.2
raw patch · 7 files changed
+25/−8 lines, 7 files
Files
- Hs2lib.cabal +1/−1
- LIMITS.txt +4/−0
- WinDll/CodeGen/C.hs +4/−2
- WinDll/CodeGen/CSharp/CSharp.hs +4/−2
- WinDll/Debug/Exports.xhs +10/−1
- WinDll/Lib/NativeMapping_Base.cpphs +1/−1
- WinDll/Version/Hs2lib.hs +1/−1
Hs2lib.cabal view
@@ -1,5 +1,5 @@ Name: Hs2lib -Version: 0.5.1 +Version: 0.5.2 Cabal-Version: >= 1.10 Build-Type: Custom License: BSD3
LIMITS.txt view
@@ -1,3 +1,7 @@+Version 0.5.2 + - No longer frees Strings, in order to prevent heap corruptions on calls + from C#. + Version 0.5.1 - Library bug fix which cauzed an error in marshalling
WinDll/CodeGen/C.hs view
@@ -71,8 +71,10 @@ else [] debugdefs = if debugging session then case callconv of - StdCall -> [HaskellExport callconv ann $ Export "Ex.freeS" "freeS" ftType ftType modnm] - CCall -> [HaskellExport callconv ann $ Export "Ex.freeC" "freeC" ftType ftType modnm] + StdCall -> [HaskellExport callconv ann $ Export "Ex.freeS" "freeS" ftType ftType modnm + ,HaskellExport callconv ann $ Export "Ex.recordS" "recordS" ftType ftType modnm] + CCall -> [HaskellExport callconv ann $ Export "Ex.freeC" "freeC" ftType ftType modnm + ,HaskellExport callconv ann $ Export "Ex.recordS" "recordS" ftType ftType modnm] else [] inform _detail "Creating export definition file"
WinDll/CodeGen/CSharp/CSharp.hs view
@@ -71,8 +71,10 @@ else [] debugdefs = if debugging session then case callconv of- StdCall -> [HaskellExport callconv ann $ Export "Ex.freeS" "freeS" ftType ftType modnm]- CCall -> [HaskellExport callconv ann $ Export "Ex.freeC" "freeC" ftType ftType modnm]+ StdCall -> [HaskellExport callconv ann $ Export "Ex.freeS" "freeS" ftType ftType modnm+ ,HaskellExport callconv ann $ Export "Ex.recordS" "recordS" ftType ftType modnm]+ CCall -> [HaskellExport callconv ann $ Export "Ex.freeC" "freeC" ftType ftType modnm+ ,HaskellExport callconv ann $ Export "Ex.recordS" "recordS" ftType ftType modnm] else [] inform _detail "Creating C# structures & function header file"
WinDll/Debug/Exports.xhs view
@@ -26,8 +26,17 @@ foreign export stdcall "freeS" freeS :: Ptr () -> IO () foreign export ccall "freeC" freeC :: Ptr () -> IO () +foreign export stdcall "recordS" freeS :: Ptr () -> IO () +foreign export ccall "recordC" freeC :: Ptr () -> IO () + freeS :: Ptr () -> IO () freeS ptr = F.freeUnknown "[External Source]" ptr G.free freeC :: Ptr () -> IO () -freeC ptr = F.freeUnknown "[External Source]" ptr G.free+freeC ptr = F.freeUnknown "[External Source]" ptr G.free + +recordS :: Ptr () -> IO () +recordS ptr = F.freeUnknown "[External Source]" ptr (const (return ())) + +recordC :: Ptr () -> IO () +recordC ptr = F.freeUnknown "[External Source]" ptr (const (return ()))
WinDll/Lib/NativeMapping_Base.cpphs view
@@ -244,7 +244,7 @@ toNative = RECORDM(__FILE__, __LINE__, "newCWString" , newCWString) fromNative _ST_ ptr = do {(RECORD( __FILE__, __LINE__, "peekCWString", id)) _ST_ ptr; str <- peekCWString ptr; - freeFFI _ST_ "" ptr; + -- freeFFI _ST_ "" ptr; return str;} freeFFI = FREE( __FILE__, __LINE__, "freeCWString", F.free)
WinDll/Version/Hs2lib.hs view
@@ -19,7 +19,7 @@ -- | Version Number verNum :: [Int] -verNum = [0,5,1] +verNum = [0,5,2] -- | Version string verStr :: String