Skip to content

Commit d070fed

Browse files
thestingerbrson
authored andcommitted
---
yaml --- r: 34158 b: refs/heads/snap-stage3 c: 6c433f2 h: refs/heads/master v: v3
1 parent fa5077c commit d070fed

File tree

2 files changed

+24
-26
lines changed

2 files changed

+24
-26
lines changed

[refs]

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
---
22
refs/heads/master: cd6f24f9d14ac90d167386a56e7a6ac1f0318195
33
refs/heads/snap-stage1: e33de59e47c5076a89eadeb38f4934f58a3618a6
4-
refs/heads/snap-stage3: ab75d3937de68447cbaeac6546b1ae2b463b8231
4+
refs/heads/snap-stage3: 6c433f22a152f6825f3610382176aaa191ebf7cb
55
refs/heads/try: d324a424d8f84b1eb049b12cf34182bda91b0024
66
refs/tags/release-0.1: 1f5c5126e96c79d22cb7862f75304136e204f105
77
refs/heads/ndm: f3868061cd7988080c30d6d5bf352a5a5fe2460b

branches/snap-stage3/src/libstd/priority_queue.rs

Lines changed: 23 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -97,41 +97,39 @@ impl <T: Copy Ord> PriorityQueue<T> {
9797
q
9898
}
9999

100-
priv fn siftup(&mut self, startpos: uint, pos: uint) {
100+
priv fn siftup(&mut self, start: uint, pos: uint) {
101101
let mut pos = pos;
102-
let newitem = self.data[pos];
103-
104-
while pos > startpos {
105-
let parentpos = (pos - 1) >> 1;
106-
let parent = self.data[parentpos];
107-
if newitem > parent {
108-
self.data[pos] = parent;
109-
pos = parentpos;
102+
let new = self.data[pos];
103+
104+
while pos > start {
105+
let parent = (pos - 1) >> 1;
106+
if new > self.data[parent] {
107+
self.data[pos] = self.data[parent];
108+
pos = parent;
110109
loop
111110
}
112111
break
113112
}
114-
self.data[pos] = newitem;
113+
self.data[pos] = new;
115114
}
116115

117-
priv fn siftdown_range(&mut self, pos: uint, endpos: uint) {
116+
priv fn siftdown_range(&mut self, pos: uint, end: uint) {
118117
let mut pos = pos;
119-
let startpos = pos;
120-
let newitem = self.data[pos];
121-
122-
let mut childpos = 2 * pos + 1;
123-
while childpos < endpos {
124-
let rightpos = childpos + 1;
125-
if rightpos < endpos &&
126-
!(self.data[childpos] > self.data[rightpos]) {
127-
childpos = rightpos;
118+
let start = pos;
119+
let new = self.data[pos];
120+
121+
let mut child = 2 * pos + 1;
122+
while child < end {
123+
let right = child + 1;
124+
if right < end && !(self.data[child] > self.data[right]) {
125+
child = right;
128126
}
129-
self.data[pos] = self.data[childpos];
130-
pos = childpos;
131-
childpos = 2 * pos + 1;
127+
self.data[pos] = self.data[child];
128+
pos = child;
129+
child = 2 * pos + 1;
132130
}
133-
self.data[pos] = newitem;
134-
self.siftup(startpos, pos);
131+
self.data[pos] = new;
132+
self.siftup(start, pos);
135133
}
136134

137135
priv fn siftdown(&mut self, pos: uint) {

0 commit comments

Comments
 (0)