From 7d970a177f7e34220be1804cdebbc73755813808 Mon Sep 17 00:00:00 2001 From: Joshua Suskalo Date: Sat, 25 Sep 2021 13:05:53 -0500 Subject: [PATCH] Add function for copying the data from one segment to another --- src/clj/coffi/ffi.clj | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/clj/coffi/ffi.clj b/src/clj/coffi/ffi.clj index e964497..d4e53ac 100644 --- a/src/clj/coffi/ffi.clj +++ b/src/clj/coffi/ffi.clj @@ -153,12 +153,17 @@ [scope action] (.addCloseAction ^ResourceScope scope action)) +(defn copy-segment + "Copies the content to `dest` from `src`" + [dest src] + (.copyFrom ^MemorySegment dest ^MemorySegment src)) + (defn clone-segment "Clones the content of `segment` into a new segment of the same size." ([segment] (clone-segment segment (connected-scope))) ([segment scope] (doto ^MemorySegment (alloc (.byteSize ^MemorySegment segment) scope) - (.copyFrom ^MemorySegment segment)))) + (copy-segment segment)))) (defn slice-segments "Constructs a lazy seq of `size`-length memory segments, sliced from `segment`."