diff options
author | Benjamin Barenblat <bbaren@google.com> | 2018-04-28 17:03:04 -0700 |
---|---|---|
committer | Benjamin Barenblat <bbaren@google.com> | 2018-04-28 17:03:04 -0700 |
commit | 226c84a6e5464ca74468e690250227f70e8fa1c8 (patch) | |
tree | 74200fbc5a3c1efb57b8d20a1c7fac9b1672b8d4 /src/Internal/HMAC.chs | |
parent | 8acf77aede21ca6d82415639557306babe3c71bf (diff) |
Factor out common resource create/initialize/set-finalizer cycle
Diffstat (limited to 'src/Internal/HMAC.chs')
-rw-r--r-- | src/Internal/HMAC.chs | 7 |
1 files changed, 2 insertions, 5 deletions
diff --git a/src/Internal/HMAC.chs b/src/Internal/HMAC.chs index 7e64edf..88ac1fb 100644 --- a/src/Internal/HMAC.chs +++ b/src/Internal/HMAC.chs @@ -26,6 +26,7 @@ import Foreign import Foreign.C.Types import Foreign.Ptr.Cast (asVoidPtr) +import Foreign.Ptr.CreateWithFinalizer (createWithFinalizer) {#import Internal.Base#} import Result @@ -33,11 +34,7 @@ import Result -- | Memory-safe allocator for 'HMACCtx'. mallocHMACCtx :: IO (ForeignPtr HMACCtx) -mallocHMACCtx = do - fp <- mallocForeignPtr - withForeignPtr fp {#call HMAC_CTX_init as ^#} - addForeignPtrFinalizer hmacCtxCleanup fp - return fp +mallocHMACCtx = createWithFinalizer {#call HMAC_CTX_init as ^#} hmacCtxCleanup foreign import ccall "&HMAC_CTX_cleanup" hmacCtxCleanup :: FinalizerPtr HMACCtx |