From d4432a797450594ff78457fe3e516bb0aeaedfe0 Mon Sep 17 00:00:00 2001 From: Simon BD Date: Thu, 25 Oct 2012 11:30:41 -0500 Subject: [PATCH] Remove some unused MergeState code, add a Fixme and remove a workaround involving pure code not being considered pure --- src/libstd/sort.rs | 13 +++++-------- 1 file changed, 5 insertions(+), 8 deletions(-) diff --git a/src/libstd/sort.rs b/src/libstd/sort.rs index 14af2ead61b..52ef271fd56 100644 --- a/src/libstd/sort.rs +++ b/src/libstd/sort.rs @@ -179,7 +179,6 @@ pub fn tim_sort(array: &[mut T]) { } let ms = &MergeState(); - ms.array = array; let min_run = min_run_length(size); let mut idx = 0; @@ -383,14 +382,13 @@ struct RunState { struct MergeState { mut min_gallop: uint, - mut array: &[mut T], runs: DVec, } +// Fixme (#3853) Move into MergeState fn MergeState() -> MergeState { MergeState { min_gallop: MIN_GALLOP, - array: &[mut], runs: DVec(), } } @@ -500,9 +498,8 @@ impl MergeState { loop { assert len1 > 1 && len2 != 0; - //let tmp_view = vec::const_view(tmp, c1, c1+len1); - count1 = gallop_right(&const array[c2], - vec::const_view(tmp, c1, c1+len1), 0); + let tmp_view = vec::const_view(tmp, c1, c1+len1); + count1 = gallop_right(&const array[c2], tmp_view, 0); if count1 != 0 { copy_vec(array, dest, tmp, c1, count1); dest += count1; c1 += count1; len1 -= count1; @@ -620,9 +617,9 @@ impl MergeState { dest -= 1; c2 -= 1; len2 -= 1; if len2 == 1 { break_outer = true; break; } - //let tmp_view = vec::mut_view(tmp, 0, len2); + let tmp_view = vec::mut_view(tmp, 0, len2); let count2 = len2 - gallop_left(&const array[c1], - vec::mut_view(tmp, 0, len2), len2-1); + tmp_view, len2-1); if count2 != 0 { dest -= count2; c2 -= count2; len2 -= count2; copy_vec(array, dest+1, tmp, c2+1, count2);