diff options
| author | Niko Matsakis <niko@alum.mit.edu> | 2013-02-08 22:21:45 -0800 |
|---|---|---|
| committer | Niko Matsakis <niko@alum.mit.edu> | 2013-02-12 20:10:50 -0800 |
| commit | ab2534974caf39e69b401442ff1a9077b94c46c1 (patch) | |
| tree | 31c4921f9e3a47dc1e31127d5cc770f199332105 /src/libstd/priority_queue.rs | |
| parent | 91c59f5c9a6d1fe72a18768b074fcb16542e0ca1 (diff) | |
| download | rust-ab2534974caf39e69b401442ff1a9077b94c46c1.tar.gz rust-ab2534974caf39e69b401442ff1a9077b94c46c1.zip | |
Adjust borrow checker algorithm to address #4856 unsoundness,
and then adjust code to match. rs=unsound (will review post-landing)
Diffstat (limited to 'src/libstd/priority_queue.rs')
| -rw-r--r-- | src/libstd/priority_queue.rs | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/src/libstd/priority_queue.rs b/src/libstd/priority_queue.rs index 5248ab1742e..a64aa5e9687 100644 --- a/src/libstd/priority_queue.rs +++ b/src/libstd/priority_queue.rs @@ -81,7 +81,8 @@ impl <T: Ord> PriorityQueue<T> { /// Push an item onto the queue fn push(&mut self, item: T) { self.data.push(item); - self.siftup(0, self.len() - 1); + let new_len = self.len() - 1; + self.siftup(0, new_len); } /// Optimized version of a push followed by a pop @@ -179,7 +180,8 @@ impl <T: Ord> PriorityQueue<T> { } priv fn siftdown(&mut self, pos: uint) { - self.siftdown_range(pos, self.len()); + let len = self.len(); + self.siftdown_range(pos, len); } } |
