aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGravatar Benjamin Barenblat <bbaren@google.com>2018-08-31 17:16:59 -0400
committerGravatar Benjamin Barenblat <bbaren@google.com>2018-08-31 17:16:59 -0400
commitc9eb11a8b685dffa9035f324ca11a727cd16a128 (patch)
tree1d2974aa79a7dd87b353a0fc435f605712ddefe6
parentb1639dda870f22a78136b26295f98585e503fa98 (diff)
Replace `unsafeCoerce' with `castPtr'
-rw-r--r--btls.cabal1
-rw-r--r--src/BTLS/BoringSSL/Mem.chs6
-rw-r--r--src/BTLS/Buffer.hs6
-rw-r--r--src/BTLS/Cast.hs21
4 files changed, 3 insertions, 31 deletions
diff --git a/btls.cabal b/btls.cabal
index 5c9d68a..f544a6e 100644
--- a/btls.cabal
+++ b/btls.cabal
@@ -79,7 +79,6 @@ library
, BTLS.BoringSSL.Rand
, BTLS.BoringSSLPatterns
, BTLS.Buffer
- , BTLS.Cast
, BTLS.CreateWithFinalizer
, BTLS.Result
, BTLS.Types
diff --git a/src/BTLS/BoringSSL/Mem.chs b/src/BTLS/BoringSSL/Mem.chs
index 6f828ad..f3af001 100644
--- a/src/BTLS/BoringSSL/Mem.chs
+++ b/src/BTLS/BoringSSL/Mem.chs
@@ -14,9 +14,7 @@
module BTLS.BoringSSL.Mem where
-import Foreign (Ptr)
-
-import BTLS.Cast (asVoidPtr)
+import Foreign (Ptr, castPtr)
#include <openssl/mem.h>
@@ -24,4 +22,4 @@ import BTLS.Cast (asVoidPtr)
-- of time dependent on the specified size but independent of either buffer's
-- contents.
{#fun CRYPTO_memcmp as cryptoMemcmp
- {asVoidPtr `Ptr a', asVoidPtr `Ptr a', `Int'} -> `Int'#}
+ {castPtr `Ptr a', castPtr `Ptr a', `Int'} -> `Int'#}
diff --git a/src/BTLS/Buffer.hs b/src/BTLS/Buffer.hs
index 186054f..1a334e9 100644
--- a/src/BTLS/Buffer.hs
+++ b/src/BTLS/Buffer.hs
@@ -22,7 +22,6 @@ import qualified Data.ByteString as ByteString
import qualified Data.ByteString.Unsafe as ByteString
import Foreign (Ptr, castPtr)
import Foreign.C.Types
-import Unsafe.Coerce (unsafeCoerce)
unsafeUseAsCBuffer :: ByteString -> ((Ptr a, CULong) -> IO b) -> IO b
unsafeUseAsCBuffer bs f =
@@ -31,7 +30,4 @@ unsafeUseAsCBuffer bs f =
packCUStringLen :: Integral n => (Ptr CUChar, n) -> IO ByteString
packCUStringLen (pStr, len) =
- ByteString.packCStringLen (asCCharBuf pStr, fromIntegral len)
-
-asCCharBuf :: Ptr CUChar -> Ptr CChar
-asCCharBuf = unsafeCoerce
+ ByteString.packCStringLen (castPtr pStr, fromIntegral len)
diff --git a/src/BTLS/Cast.hs b/src/BTLS/Cast.hs
deleted file mode 100644
index 6f29469..0000000
--- a/src/BTLS/Cast.hs
+++ /dev/null
@@ -1,21 +0,0 @@
--- Copyright 2018 Google LLC
---
--- Licensed under the Apache License, Version 2.0 (the "License"); you may not
--- use this file except in compliance with the License. You may obtain a copy of
--- the License at
---
--- https://www.apache.org/licenses/LICENSE-2.0
---
--- Unless required by applicable law or agreed to in writing, software
--- distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
--- WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
--- License for the specific language governing permissions and limitations under
--- the License.
-
-module BTLS.Cast where
-
-import Foreign (Ptr)
-import Unsafe.Coerce (unsafeCoerce)
-
-asVoidPtr :: Ptr a -> Ptr ()
-asVoidPtr = unsafeCoerce