diff options
author | Shea Levy <shea@shealevy.com> | 2017-01-10 13:33:58 -0500 |
---|---|---|
committer | Ben Gamari <ben@smart-cactus.org> | 2017-01-10 13:34:05 -0500 |
commit | 226c5352bb63ab53b11a23484c8ec8f20a57d538 (patch) | |
tree | 5b25c0f78748a237c8ea6fa45b3b49f004f096f9 /libraries | |
parent | 12ad4d417b89462ba8e19a3c7772a931b3a93f0e (diff) | |
download | haskell-226c5352bb63ab53b11a23484c8ec8f20a57d538.tar.gz |
base: Add Foreign.ForeignPtr.plusForeignPtr.
Reviewers: simonmar, austin, hvr, bgamari
Reviewed By: bgamari
Subscribers: RyanGlScott, thomie
Differential Revision: https://phabricator.haskell.org/D2900
Diffstat (limited to 'libraries')
-rw-r--r-- | libraries/base/Foreign/ForeignPtr.hs | 1 | ||||
-rw-r--r-- | libraries/base/Foreign/ForeignPtr/Imp.hs | 1 | ||||
-rw-r--r-- | libraries/base/GHC/ForeignPtr.hs | 7 | ||||
-rw-r--r-- | libraries/base/changelog.md | 2 |
4 files changed, 11 insertions, 0 deletions
diff --git a/libraries/base/Foreign/ForeignPtr.hs b/libraries/base/Foreign/ForeignPtr.hs index cedfba7138..a684a8d25b 100644 --- a/libraries/base/Foreign/ForeignPtr.hs +++ b/libraries/base/Foreign/ForeignPtr.hs @@ -35,6 +35,7 @@ module Foreign.ForeignPtr ( -- ** Low-level operations , touchForeignPtr , castForeignPtr + , plusForeignPtr -- ** Allocating managed memory , mallocForeignPtr diff --git a/libraries/base/Foreign/ForeignPtr/Imp.hs b/libraries/base/Foreign/ForeignPtr/Imp.hs index 2c3f39365b..4824c3058a 100644 --- a/libraries/base/Foreign/ForeignPtr/Imp.hs +++ b/libraries/base/Foreign/ForeignPtr/Imp.hs @@ -38,6 +38,7 @@ module Foreign.ForeignPtr.Imp , unsafeForeignPtrToPtr , touchForeignPtr , castForeignPtr + , plusForeignPtr -- ** Allocating managed memory , mallocForeignPtr diff --git a/libraries/base/GHC/ForeignPtr.hs b/libraries/base/GHC/ForeignPtr.hs index b9b29eaff6..60880846b6 100644 --- a/libraries/base/GHC/ForeignPtr.hs +++ b/libraries/base/GHC/ForeignPtr.hs @@ -39,6 +39,7 @@ module GHC.ForeignPtr touchForeignPtr, unsafeForeignPtrToPtr, castForeignPtr, + plusForeignPtr, newConcForeignPtr, addForeignPtrConcFinalizer, finalizeForeignPtr @@ -434,6 +435,12 @@ castForeignPtr :: ForeignPtr a -> ForeignPtr b -- parameterised by one type into another type. castForeignPtr = coerce +plusForeignPtr :: ForeignPtr a -> Int -> ForeignPtr b +-- ^Advances the given address by the given offset in bytes. +-- +-- @since 4.10.0.0 +plusForeignPtr (ForeignPtr addr c) (I# d) = ForeignPtr (plusAddr# addr d) c + -- | Causes the finalizers associated with a foreign pointer to be run -- immediately. finalizeForeignPtr :: ForeignPtr a -> IO () diff --git a/libraries/base/changelog.md b/libraries/base/changelog.md index e0cd3845fc..b73e01ecc0 100644 --- a/libraries/base/changelog.md +++ b/libraries/base/changelog.md @@ -35,6 +35,8 @@ * Raw buffer operations in `GHC.IO.FD` are now strict in the buffer, offset, and length operations (#9696) + * Add `plusForeignPtr` to `Foreign.ForeignPtr`. + ## 4.9.0.0 *May 2016* * Bundled with GHC 8.0 |