From 015079075e1e156d5934f4e716a51eb284289b5d Mon Sep 17 00:00:00 2001 From: Benjamin Barenblat Date: Tue, 4 Sep 2018 18:53:20 -0400 Subject: Marshal `ForeignPtr` to `Ptr` within c2hs code --- src/Data/Digest.hs | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) (limited to 'src/Data/Digest.hs') diff --git a/src/Data/Digest.hs b/src/Data/Digest.hs index a17c438..594fef1 100644 --- a/src/Data/Digest.hs +++ b/src/Data/Digest.hs @@ -40,7 +40,6 @@ module Data.Digest import qualified Data.ByteString.Lazy as Lazy (ByteString) import qualified Data.ByteString.Lazy as ByteString.Lazy -import Foreign (withForeignPtr) import Foreign.Marshal.Unsafe (unsafeLocalState) import BTLS.BoringSSL.Base @@ -88,8 +87,7 @@ sha512 = Algorithm evpSHA512 hash :: Algorithm -> Lazy.ByteString -> Digest hash (Algorithm md) bytes = unsafeLocalState $ do - ctxFP <- mallocEVPMDCtx - withForeignPtr ctxFP $ \ctx -> do - evpDigestInitEx ctx md noEngine - mapM_ (evpDigestUpdate ctx) (ByteString.Lazy.toChunks bytes) - Digest <$> onBufferOfMaxSize evpMaxMDSize (evpDigestFinalEx ctx) + ctx <- mallocEVPMDCtx + evpDigestInitEx ctx md noEngine + mapM_ (evpDigestUpdate ctx) (ByteString.Lazy.toChunks bytes) + Digest <$> onBufferOfMaxSize evpMaxMDSize (evpDigestFinalEx ctx) -- cgit v1.2.3