Skip to content

Commit 0bace1a

Browse files
author
Jonas Isensee
committed
take ownership of triangulation memory
1 parent 15a8c13 commit 0bace1a

File tree

1 file changed

+4
-4
lines changed

1 file changed

+4
-4
lines changed

src/triangulation.jl

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -183,31 +183,31 @@ function earcut_triangulate(polygon::Vector{Vector{Point{2,Float64}}})
183183
len = UInt32(length(lengths))
184184
array = ccall((:u32_triangulate_f64, libearcut), Tuple{Ptr{GLTriangleFace},Cint},
185185
(Ptr{Ptr{Float64}}, Ptr{UInt32}, UInt32), polygon, lengths, len)
186-
return unsafe_wrap(Vector{GLTriangleFace}, array[1], array[2])
186+
return unsafe_wrap(Vector{GLTriangleFace}, array[1], array[2]; own=true)
187187
end
188188

189189
function earcut_triangulate(polygon::Vector{Vector{Point{2,Float32}}})
190190
lengths = map(x -> UInt32(length(x)), polygon)
191191
len = UInt32(length(lengths))
192192
array = ccall((:u32_triangulate_f32, libearcut), Tuple{Ptr{GLTriangleFace},Cint},
193193
(Ptr{Ptr{Float32}}, Ptr{UInt32}, UInt32), polygon, lengths, len)
194-
return unsafe_wrap(Vector{GLTriangleFace}, array[1], array[2])
194+
return unsafe_wrap(Vector{GLTriangleFace}, array[1], array[2]; own=true)
195195
end
196196

197197
function earcut_triangulate(polygon::Vector{Vector{Point{2,Int64}}})
198198
lengths = map(x -> UInt32(length(x)), polygon)
199199
len = UInt32(length(lengths))
200200
array = ccall((:u32_triangulate_i64, libearcut), Tuple{Ptr{GLTriangleFace},Cint},
201201
(Ptr{Ptr{Int64}}, Ptr{UInt32}, UInt32), polygon, lengths, len)
202-
return unsafe_wrap(Vector{GLTriangleFace}, array[1], array[2])
202+
return unsafe_wrap(Vector{GLTriangleFace}, array[1], array[2]; own=true)
203203
end
204204

205205
function earcut_triangulate(polygon::Vector{Vector{Point{2,Int32}}})
206206
lengths = map(x -> UInt32(length(x)), polygon)
207207
len = UInt32(length(lengths))
208208
array = ccall((:u32_triangulate_i32, libearcut), Tuple{Ptr{GLTriangleFace},Cint},
209209
(Ptr{Ptr{Int32}}, Ptr{UInt32}, UInt32), polygon, lengths, len)
210-
return unsafe_wrap(Vector{GLTriangleFace}, array[1], array[2])
210+
return unsafe_wrap(Vector{GLTriangleFace}, array[1], array[2]; own=true)
211211
end
212212

213213
best_earcut_eltype(x) = Float64

0 commit comments

Comments
 (0)