diff options
| author | Jeroen van Rijn <Kelimion@users.noreply.github.com> | 2022-09-01 22:21:44 +0200 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2022-09-01 22:21:44 +0200 |
| commit | b7ac0a9e8d433f130bcb562db2ffa35657564665 (patch) | |
| tree | e13b30df18eb0b9f2972f0f3f4d0fc0a6fec28a1 | |
| parent | c2423dc07f9ed3ecfd2554388ab9388aaf2cba22 (diff) | |
| parent | 3f3ae4b2b6f8449a9aec6f27265ab235046d23d0 (diff) | |
Merge pull request #2006 from thePHTest/sort_with_indices
fix sort_by_with_indices for zero and one length slices
| -rw-r--r-- | core/slice/sort.odin | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/core/slice/sort.odin b/core/slice/sort.odin index 8020cede7..365bbce96 100644 --- a/core/slice/sort.odin +++ b/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) { |