about summary refs log tree commit diff
path: root/src/libstd/priority_queue.rs
diff options
context:
space:
mode:
authorPatrick Walton <pcwalton@mimiga.net>2013-01-23 11:43:58 -0800
committerPatrick Walton <pcwalton@mimiga.net>2013-01-23 14:41:08 -0800
commit54b2cad8b341434c7c0edb153a0fa662fb2981f1 (patch)
tree72e8fa6637f1d5250b826ef4436e00993e2d3388 /src/libstd/priority_queue.rs
parent1d1b81143b947fa33745a78cf00af12cda437149 (diff)
downloadrust-54b2cad8b341434c7c0edb153a0fa662fb2981f1.tar.gz
rust-54b2cad8b341434c7c0edb153a0fa662fb2981f1.zip
libsyntax: Remove `fn() unsafe { ... }`. r=graydon
Diffstat (limited to 'src/libstd/priority_queue.rs')
-rw-r--r--src/libstd/priority_queue.rs63
1 files changed, 34 insertions, 29 deletions
diff --git a/src/libstd/priority_queue.rs b/src/libstd/priority_queue.rs
index ee78fafb60b..b5b30599d48 100644
--- a/src/libstd/priority_queue.rs
+++ b/src/libstd/priority_queue.rs
@@ -131,41 +131,46 @@ impl <T: Ord> PriorityQueue<T> {
     // vector over the junk element.  This reduces the constant factor
     // compared to using swaps, which involves twice as many moves.
 
-    priv fn siftup(&mut self, start: uint, pos: uint) unsafe {
-        let mut pos = pos;
-        let new = move *addr_of(&self.data[pos]);
-
-        while pos > start {
-            let parent = (pos - 1) >> 1;
-            if new > self.data[parent] {
-                rusti::move_val_init(&mut self.data[pos],
-                                     move *addr_of(&self.data[parent]));
-                pos = parent;
-                loop
+    priv fn siftup(&mut self, start: uint, pos: uint) {
+        unsafe {
+            let mut pos = pos;
+            let new = move *addr_of(&self.data[pos]);
+
+            while pos > start {
+                let parent = (pos - 1) >> 1;
+                if new > self.data[parent] {
+                    rusti::move_val_init(&mut self.data[pos],
+                                         move *addr_of(&self.data[parent]));
+                    pos = parent;
+                    loop
+                }
+                break
             }
-            break
+            rusti::move_val_init(&mut self.data[pos], move new);
         }
-        rusti::move_val_init(&mut self.data[pos], move new);
     }
 
-    priv fn siftdown_range(&mut self, pos: uint, end: uint) unsafe {
-        let mut pos = pos;
-        let start = pos;
-        let new = move *addr_of(&self.data[pos]);
-
-        let mut child = 2 * pos + 1;
-        while child < end {
-            let right = child + 1;
-            if right < end && !(self.data[child] > self.data[right]) {
-                child = right;
+    priv fn siftdown_range(&mut self, pos: uint, end: uint) {
+        unsafe {
+            let mut pos = pos;
+            let start = pos;
+            let new = move *addr_of(&self.data[pos]);
+
+            let mut child = 2 * pos + 1;
+            while child < end {
+                let right = child + 1;
+                if right < end && !(self.data[child] > self.data[right]) {
+                    child = right;
+                }
+                rusti::move_val_init(&mut self.data[pos],
+                                     move *addr_of(&self.data[child]));
+                pos = child;
+                child = 2 * pos + 1;
             }
-            rusti::move_val_init(&mut self.data[pos],
-                                 move *addr_of(&self.data[child]));
-            pos = child;
-            child = 2 * pos + 1;
+
+            rusti::move_val_init(&mut self.data[pos], move new);
+            self.siftup(start, pos);
         }
-        rusti::move_val_init(&mut self.data[pos], move new);
-        self.siftup(start, pos);
     }
 
     priv fn siftdown(&mut self, pos: uint) {