@@ -353,17 +353,13 @@ struct RunState {
353
353
354
354
struct MergeState < T > {
355
355
mut min_gallop : uint ,
356
- //mut mergePt: uint,
357
- //mut tmpPt: uint,
358
356
mut array : & [ mut T ] ,
359
357
runs : DVec < RunState > ,
360
358
}
361
359
362
360
fn MergeState < T > ( ) -> MergeState < T > {
363
361
MergeState {
364
362
min_gallop : MIN_GALLOP ,
365
- //mergePt: 0,
366
- //tmpPt: 0,
367
363
array : & [ mut] ,
368
364
runs : DVec ( ) ,
369
365
}
@@ -427,13 +423,11 @@ impl<T: Copy Ord> MergeState<T> {
427
423
}
428
424
429
425
let slice = vec:: mut_view ( array, b1, b1+l1) ;
430
- //self.mergePt = b1;
431
426
let k = gallop_right ( & const array[ b2] , slice, 0 ) ;
432
427
b1 += k;
433
428
l1 -= k;
434
429
if l1 != 0 {
435
430
let slice = vec:: mut_view ( array, b2, b2+l2) ;
436
- //self.mergePt = b2;
437
431
let l2 = gallop_left (
438
432
& const array[ b1+l1-1 ] , slice, l2-1 ) ;
439
433
if l2 > 0 {
@@ -446,16 +440,13 @@ impl<T: Copy Ord> MergeState<T> {
446
440
}
447
441
}
448
442
self. runs . pop ( ) ;
449
- //self.mergePt = 0;
450
443
}
451
444
452
445
fn merge_lo ( & self , array : & [ mut T ] , base1 : uint , len1 : uint ,
453
446
base2 : uint , len2 : uint ) {
454
447
assert len1 != 0 && len2 != 0 && base1+len1 == base2;
455
448
456
449
let tmp = vec:: to_mut ( vec:: slice ( array, base1, base1+len1) ) ;
457
- //self.tmpPt = 0;
458
- //self.mergePt = base1;
459
450
460
451
let mut c1 = 0 ;
461
452
let mut c2 = base2;
@@ -465,7 +456,6 @@ impl<T: Copy Ord> MergeState<T> {
465
456
466
457
array[ dest] <-> array[ c2] ;
467
458
dest += 1 ; c2 += 1 ; len2 -= 1 ;
468
- //self.mergePt += 1;
469
459
470
460
if len2 == 0 {
471
461
copy_vec ( array, dest, tmp, 0 , len1) ;
@@ -488,16 +478,13 @@ impl<T: Copy Ord> MergeState<T> {
488
478
if array[ c2] < tmp[ c1] {
489
479
array[ dest] <-> array[ c2] ;
490
480
dest += 1 ; c2 += 1 ; len2 -= 1 ;
491
- //self.mergePt += 1;
492
481
count2 += 1 ; count1 = 0 ;
493
482
if len2 == 0 {
494
483
break_outer = true ;
495
484
}
496
485
} else {
497
486
array[ dest] <-> tmp[ c1] ;
498
487
dest += 1 ; c1 += 1 ; len1 -= 1 ;
499
- //self.mergePt += 1;
500
- //self.tmpPt += 1;
501
488
count1 += 1 ; count2 = 0 ;
502
489
if len1 == 1 {
503
490
break_outer = true ;
@@ -519,25 +506,21 @@ impl<T: Copy Ord> MergeState<T> {
519
506
if count1 != 0 {
520
507
copy_vec ( array, dest, tmp, c1, count1) ;
521
508
dest += count1; c1 += count1; len1 -= count1;
522
- //self.mergePt += count1; self.tmpPt += count1;
523
509
if len1 <= 1 { break_outer = true ; break ; }
524
510
}
525
511
array[ dest] <-> array[ c2] ;
526
512
dest += 1 ; c2 += 1 ; len2 -= 1 ;
527
- //self.mergePt += 1;
528
513
if len2 == 0 { break_outer = true ; break ; }
529
514
530
515
let tmp_view = vec:: const_view ( array, c2, c2+len2) ;
531
516
count2 = gallop_left ( & const tmp[ c1] , tmp_view, 0 ) ;
532
517
if count2 != 0 {
533
518
copy_vec ( array, dest, array, c2, count2) ;
534
519
dest += count2; c2 += count2; len2 -= count2;
535
- //self.mergePt += count2;
536
520
if len2 == 0 { break_outer = true ; break ; }
537
521
}
538
522
array[ dest] <-> tmp[ c1] ;
539
523
dest += 1 ; c1 += 1 ; len1 -= 1 ;
540
- //self.mergePt += 1; self.tmpPt += 1;
541
524
if len1 == 1 { break_outer = true ; break ; }
542
525
min_gallop -= 1 ;
543
526
if !( count1 >= MIN_GALLOP || count2 >= MIN_GALLOP ) {
@@ -561,7 +544,6 @@ impl<T: Copy Ord> MergeState<T> {
561
544
assert len1 > 1;
562
545
copy_vec(array, dest, tmp, c1, len1);
563
546
}
564
- //self.tmpPt = 0;
565
547
}
566
548
567
549
fn merge_hi(&self, array: &[mut T], base1: uint, len1: uint,
@@ -576,9 +558,6 @@ impl<T: Copy Ord> MergeState<T> {
576
558
let mut len1 = len1;
577
559
let mut len2 = len2;
578
560
579
- //self.mergePt = dest;
580
- //self.tmpPt = len2 - 1;
581
-
582
561
array[dest] <-> array[c1];
583
562
dest -= 1; c1 -= 1; len1 -= 1;
584
563
@@ -605,15 +584,13 @@ impl<T: Copy Ord> MergeState<T> {
605
584
if tmp[c2] < array[c1] {
606
585
array[dest] <-> array[c1];
607
586
dest -= 1; c1 -= 1; len1 -= 1;
608
- //self.mergePt -= 1;
609
587
count1 += 1; count2 = 0;
610
588
if len1 == 0 {
611
589
break_outer = true;
612
590
}
613
591
} else {
614
592
array[dest] <-> tmp[c2];
615
593
dest -= 1; c2 -= 1; len2 -= 1;
616
- //self.mergePt -= 1; self.tmpPt -= 1;
617
594
count2 += 1; count1 = 0;
618
595
if len2 == 1 {
619
596
break_outer = true;
@@ -635,28 +612,24 @@ impl<T: Copy Ord> MergeState<T> {
635
612
636
613
if count1 != 0 {
637
614
dest -= count1; c1 -= count1; len1 -= count1;
638
- //self.mergePt -= count1;
639
615
copy_vec(array, dest+1, array, c1+1, count1);
640
616
if len1 == 0 { break_outer = true; break; }
641
617
}
642
618
643
619
array[dest] <-> tmp[c2];
644
620
dest -= 1; c2 -= 1; len2 -= 1;
645
- //self.mergePt -= 1; self.tmpPt -= 1;
646
621
if len2 == 1 { break_outer = true; break; }
647
622
648
623
//let tmp_view = vec::mut_view(tmp, 0, len2);
649
624
let count2 = len2 - gallop_left(&const array[c1],
650
625
vec::mut_view(tmp, 0, len2), len2-1);
651
626
if count2 != 0 {
652
627
dest -= count2; c2 -= count2; len2 -= count2;
653
- //self.mergePt -= count2; self.tmpPt -= count2;
654
628
copy_vec(array, dest+1, tmp, c2+1, count2);
655
629
if len2 <= 1 { break_outer = true; break; }
656
630
}
657
631
array[dest] <-> array[c1];
658
632
dest -= 1; c1 -= 1; len1 -= 1;
659
- //self.mergePt -= 1;
660
633
if len1 == 0 { break_outer = true; break; }
661
634
min_gallop -= 1;
662
635
if !(count1 >= MIN_GALLOP || count2 >= MIN_GALLOP) {
@@ -683,7 +656,6 @@ impl<T: Copy Ord> MergeState<T> {
683
656
assert len2 != 0 ;
684
657
copy_vec ( array, dest-( len2-1 ) , tmp, 0 , len2) ;
685
658
}
686
- //self.tmpPt = 0;
687
659
}
688
660
689
661
fn merge_collapse ( & self , array : & [ mut T ] ) {
0 commit comments