about summary refs log tree commit diff
path: root/src/libstd/priority_queue.rs
diff options
context:
space:
mode:
authorNiko Matsakis <niko@alum.mit.edu>2013-02-08 22:21:45 -0800
committerNiko Matsakis <niko@alum.mit.edu>2013-02-12 20:10:50 -0800
commitab2534974caf39e69b401442ff1a9077b94c46c1 (patch)
tree31c4921f9e3a47dc1e31127d5cc770f199332105 /src/libstd/priority_queue.rs
parent91c59f5c9a6d1fe72a18768b074fcb16542e0ca1 (diff)
downloadrust-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.rs6
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);
     }
 }