Просмотр исходного кода

Merge pull request #2006 from thePHTest/sort_with_indices

fix sort_by_with_indices for zero and one length slices
Jeroen van Rijn 3 лет назад
Родитель
Сommit
b7ac0a9e8d
1 измененных файлов с 2 добавлено и 2 удалено
  1. 2 2
      core/slice/sort.odin

+ 2 - 2
core/slice/sort.odin

@@ -97,9 +97,9 @@ sort_by :: proc(data: $T/[]$E, less: proc(i, j: E) -> bool) {
 // sort_by sorts a slice with a given procedure to test whether two values are ordered "i < j"
 // This sort is not guaranteed to be stable
 sort_by_with_indices :: proc(data: $T/[]$E, less: proc(i, j: E) -> bool, allocator := context.allocator) -> (indices : []int) {
+	indices = make([]int, len(data), allocator)
 	when size_of(E) != 0 {
 		if n := len(data); n > 1 {
-			indices = make([]int, len(data), allocator)
 			for _, idx in indices {
 				indices[idx] = idx
 			}
@@ -107,7 +107,7 @@ sort_by_with_indices :: proc(data: $T/[]$E, less: proc(i, j: E) -> bool, allocat
 			return indices
 		}
 	}
-	return nil
+	return indices
 }
 
 sort_by_cmp :: proc(data: $T/[]$E, cmp: proc(i, j: E) -> Ordering) {