@@ -353,40 +353,15 @@ struct RunState {
353
353
354
354
struct MergeState < T > {
355
355
mut min_gallop : uint ,
356
- //mut tmp: ~[T],
357
- mut last_hi : bool ,
358
- mut last_bsort : bool ,
359
356
mut mergePt : uint ,
360
357
mut tmpPt : uint ,
361
358
mut array : & [ mut T ] ,
362
359
runs : DVec < RunState > ,
363
-
364
- /*drop {
365
- unsafe {
366
- let size = self.tmp.len();
367
- // Move tmp back into invalid part of array
368
- if self.last_bsort {
369
-
370
- } else if self.last_hi && size > 0 {
371
- self.mergePt -= self.tmpPt;
372
- move_vec(self.array, self.mergePt, self.tmp, 0, self.tmpPt);
373
- } else if !self.last_hi && size-self.tmpPt > 0 {
374
- move_vec(self.array, self.mergePt,
375
- self.tmp, self.tmpPt, size-self.tmpPt);
376
- }
377
- vec::raw::set_len(&mut self.tmp, 0);
378
- }
379
- }*/
380
360
}
381
361
382
362
fn MergeState < T > ( ) -> MergeState < T > {
383
- //let mut tmp = ~[];
384
- //vec::reserve(&mut tmp, INITIAL_TMP_STORAGE);
385
363
MergeState {
386
364
min_gallop : MIN_GALLOP ,
387
- //tmp: move tmp,
388
- last_hi : false ,
389
- last_bsort : false ,
390
365
mergePt : 0 ,
391
366
tmpPt : 0 ,
392
367
array : & [ mut] ,
@@ -402,8 +377,6 @@ impl<T: Copy Ord> MergeState<T> {
402
377
403
378
if start == 0 { start += 1 ; }
404
379
405
- self . last_bsort = true ;
406
-
407
380
while start < size {
408
381
let pivot = array[ start] ;
409
382
let mut left = 0 ;
@@ -425,7 +398,6 @@ impl<T: Copy Ord> MergeState<T> {
425
398
array[ left] = move pivot;
426
399
start += 1 ;
427
400
}
428
- self . last_bsort = false ;
429
401
}
430
402
431
403
fn push_run ( & self , run_base : uint , run_len : uint ) {
@@ -481,8 +453,6 @@ impl<T: Copy Ord> MergeState<T> {
481
453
base2 : uint , len2 : uint ) {
482
454
assert len1 != 0 && len2 != 0 && base1+len1 == base2;
483
455
484
- //vec::reserve(&mut self.tmp, len1);
485
- self . last_hi = false ;
486
456
let tmp = vec:: to_mut ( vec:: slice ( array, base1, base1+len1) ) ;
487
457
self . tmpPt = 0 ;
488
458
self . mergePt = base1;
@@ -598,8 +568,6 @@ impl<T: Copy Ord> MergeState<T> {
598
568
base2: uint, len2: uint) {
599
569
assert len1 != 1 && len2 != 0 && base1 + len1 == base2;
600
570
601
- self.last_hi = true;
602
-
603
571
let tmp = vec::to_mut(vec::slice(array, base2, base2+len2));
604
572
605
573
let mut c1 = base1 + len1 - 1;
@@ -755,7 +723,7 @@ impl<T: Copy Ord> MergeState<T> {
755
723
fn copy_vec < T : Copy > ( dest : & [ mut T ] , s1 : uint ,
756
724
from : & [ const T ] , s2 : uint , len : uint ) {
757
725
assert s1+len <= dest. len ( ) && s2+len <= from. len ( ) ;
758
-
726
+
759
727
let slice = vec:: slice ( from, s2, s2+len) ;
760
728
for slice. eachi |i, v| {
761
729
dest[ s1+i] = * v;
0 commit comments