Skip to content

Commit 4d6e518

Browse files
committed
Make midpoint() backwards compatible
1 parent 0d4aa65 commit 4d6e518

File tree

1 file changed

+6
-2
lines changed

1 file changed

+6
-2
lines changed

Diff for: src/SortingAlgorithms.jl

+6-2
Original file line numberDiff line numberDiff line change
@@ -986,12 +986,16 @@ function pagedMerge!(v::AbstractVector{T}, buf::AbstractVector{T}, lo::Integer,
986986
end
987987
end
988988

989+
# midpoint was added to Base.sort in version 1.4 and later moved to Base
990+
# -> redefine for compatibility with earlier versions
991+
_midpoint(lo::Integer,hi::Integer) = lo + ((hi - lo) >>> 0x01)
992+
989993
function pagedmergesort!(v::AbstractVector{T}, lo::Integer, hi::Integer, buf::AbstractVector{T}, blockLocation, o=Base.Order.Forward) where T
990994
len = hi + 1 -lo
991995
if len <= Base.SMALL_THRESHOLD
992996
return Base.Sort.sort!(v, lo, hi, Base.Sort.InsertionSortAlg(), o)
993997
end
994-
m = Base.midpoint(lo,hi)
998+
m = _midpoint(lo,hi)
995999
pagedmergesort!(v,lo,m,buf,blockLocation,o)
9961000
pagedmergesort!(v,m+1,hi,buf,blockLocation,o)
9971001
if len <= length(buf)
@@ -1007,7 +1011,7 @@ function threaded_pagedmergesort!(v::AbstractVector, lo::Integer, hi::Integer, b
10071011
if len <= Base.SMALL_THRESHOLD
10081012
return Base.Sort.sort!(v, lo, hi, Base.Sort.InsertionSortAlg(), o)
10091013
end
1010-
m = Base.midpoint(lo,hi)
1014+
m = _midpoint(lo,hi)
10111015
if len > threadingThreshold
10121016
thr = Threads.@spawn threaded_pagedmergesort!(v,lo,m,bufs,blockLocations,c,threadingThreshold,o)
10131017
threaded_pagedmergesort!(v,m+1,hi,bufs,blockLocations,c,threadingThreshold,o)

0 commit comments

Comments
 (0)