@@ -986,12 +986,15 @@ function pagedMerge!(v::AbstractVector{T}, buf::AbstractVector{T}, lo::Integer,
986986    end     
987987end 
988988
989+ #  midpoint was added to Base.sort in version 1.4 and later moved to Base
990+ midpoint =  Base. @static  isdefined (Base, :midpoint ) ?  Base. midpoint :  isdefined (Base. Sort, :midpoint ) ?  Base. Sort. midpoint :  (lo,hi) ->  lo +  ((hi -  lo) >>>  0x01 )
991+ 
989992function  pagedmergesort! (v:: AbstractVector{T} , lo:: Integer , hi:: Integer , buf:: AbstractVector{T} , blockLocation, o= Base. Order. Forward) where  T
990993    len =  hi +  1  - lo
991994    if  len <=  Base. SMALL_THRESHOLD
992995        return  Base. Sort. sort! (v, lo, hi, Base. Sort. InsertionSortAlg (), o)
993996    end 
994-     m =  Base . midpoint (lo,hi)
997+     m =  midpoint (lo,hi)
995998    pagedmergesort! (v,lo,m,buf,blockLocation,o)
996999    pagedmergesort! (v,m+ 1 ,hi,buf,blockLocation,o)
9971000    if  len <=  length (buf)
@@ -1007,7 +1010,7 @@ function threaded_pagedmergesort!(v::AbstractVector, lo::Integer, hi::Integer, b
10071010    if  len <=  Base. SMALL_THRESHOLD
10081011        return  Base. Sort. sort! (v, lo, hi, Base. Sort. InsertionSortAlg (), o)
10091012    end 
1010-     m =  Base . midpoint (lo,hi)
1013+     m =  midpoint (lo,hi)
10111014    if  len >  threadingThreshold
10121015        thr =  Threads. @spawn  threaded_pagedmergesort! (v,lo,m,bufs,blockLocations,c,threadingThreshold,o)
10131016        threaded_pagedmergesort! (v,m+ 1 ,hi,bufs,blockLocations,c,threadingThreshold,o)
0 commit comments