aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJeroen van Rijn <Kelimion@users.noreply.github.com>2022-09-01 22:21:44 +0200
committerGitHub <noreply@github.com>2022-09-01 22:21:44 +0200
commitb7ac0a9e8d433f130bcb562db2ffa35657564665 (patch)
treee13b30df18eb0b9f2972f0f3f4d0fc0a6fec28a1
parentc2423dc07f9ed3ecfd2554388ab9388aaf2cba22 (diff)
parent3f3ae4b2b6f8449a9aec6f27265ab235046d23d0 (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.odin4
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) {