aboutsummaryrefslogtreecommitdiffstats
path: root/src/components/util/sort.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/components/util/sort.rs')
-rw-r--r--src/components/util/sort.rs12
1 files changed, 6 insertions, 6 deletions
diff --git a/src/components/util/sort.rs b/src/components/util/sort.rs
index 8f5a95e149e..60c62aab262 100644
--- a/src/components/util/sort.rs
+++ b/src/components/util/sort.rs
@@ -14,14 +14,14 @@ fn quicksort_helper<T:Ord + Eq>(arr: &mut [T], left: int, right: int) {
let mut p: int = i;
let mut q: int = j;
unsafe {
- let v: *mut T = &mut arr[right];
+ let v: *mut T = &mut arr[right as uint];
loop {
i += 1;
- while arr[i] < (*v) {
+ while arr[i as uint] < (*v) {
i += 1
}
j -= 1;
- while (*v) < arr[j] {
+ while (*v) < arr[j as uint] {
if j == left {
break
}
@@ -31,11 +31,11 @@ fn quicksort_helper<T:Ord + Eq>(arr: &mut [T], left: int, right: int) {
break
}
arr.swap(i as uint, j as uint);
- if arr[i] == (*v) {
+ if arr[i as uint] == (*v) {
p += 1;
arr.swap(p as uint, i as uint)
}
- if (*v) == arr[j] {
+ if (*v) == arr[j as uint] {
q -= 1;
arr.swap(j as uint, q as uint)
}
@@ -89,7 +89,7 @@ pub mod test {
let mut rng = rand::task_rng();
for _ in range(0, 50000) {
let len: uint = rng.gen();
- let mut v: ~[int] = rng.gen_vec((len % 32) + 1);
+ let mut v: ~[int] = rng.gen_vec((len % 32) + 1).iter().map(|&x| x).collect();
sort::quicksort(v);
for i in range(0, v.len() - 1) {
assert!(v[i] <= v[i + 1])