Skip to content

Commit 810e142

Browse files
committed
Fix leaks in comparisons
1 parent 24a150b commit 810e142

File tree

1 file changed

+24
-4
lines changed

1 file changed

+24
-4
lines changed

src/darray.jl

Lines changed: 24 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -377,13 +377,33 @@ function Base.:(==)(d::DArray{<:Any,<:Any,A}, a::AbstractArray) where A
377377
return all(b)
378378
end
379379
end
380-
Base.:(==)(d::SubDArray, a::AbstractArray) = copy(d) == a
380+
function Base.:(==)(d::SubDArray, a::AbstractArray)
381+
cd = copy(d)
382+
t = cd == a
383+
close(cd)
384+
return t
385+
end
381386
Base.:(==)(a::AbstractArray, d::DArray) = d == a
382387
Base.:(==)(a::AbstractArray, d::SubDArray) = d == a
383388
Base.:(==)(d1::DArray, d2::DArray) = invoke(==, Tuple{DArray, AbstractArray}, d1, d2)
384-
Base.:(==)(d1::SubDArray, d2::DArray) = copy(d1) == d2
385-
Base.:(==)(d1::DArray, d2::SubDArray) = d1 == copy(d2)
386-
Base.:(==)(d1::SubDArray, d2::SubDArray) = copy(d1) == copy(d2)
389+
function Base.:(==)(d1::SubDArray, d2::DArray)
390+
cd1 = copy(d1)
391+
t = cd1 == d2
392+
close(cd1)
393+
return t
394+
end
395+
function Base.:(==)(d1::DArray, d2::SubDArray)
396+
cd2 = copy(d2)
397+
t = d1 == cd2
398+
close(cd2)
399+
return t
400+
end
401+
function Base.:(==)(d1::SubDArray, d2::SubDArray)
402+
cd1 = copy(d1)
403+
t = cd1 == d2
404+
close(cd1)
405+
return t
406+
end
387407

388408
"""
389409
locate(d::DArray, I::Int...)

0 commit comments

Comments
 (0)