about summary refs log tree commit diff
path: root/src/libcore/dlist.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/libcore/dlist.rs')
-rw-r--r--src/libcore/dlist.rs44
1 files changed, 26 insertions, 18 deletions
diff --git a/src/libcore/dlist.rs b/src/libcore/dlist.rs
index 481b27c566e..e997d1f13ed 100644
--- a/src/libcore/dlist.rs
+++ b/src/libcore/dlist.rs
@@ -211,7 +211,7 @@ impl<T> DList<T> {
     fn push_head_n(+data: T) -> DListNode<T> {
         let mut nobe = self.new_link(move data);
         self.add_head(nobe);
-        option::get(nobe)
+        option::get(&nobe)
     }
     /// Add data to the tail of the list. O(1).
     fn push(+data: T) {
@@ -224,7 +224,7 @@ impl<T> DList<T> {
     fn push_n(+data: T) -> DListNode<T> {
         let mut nobe = self.new_link(move data);
         self.add_tail(nobe);
-        option::get(nobe)
+        option::get(&nobe)
     }
     /**
      * Insert data into the middle of the list, left of the given node.
@@ -248,7 +248,7 @@ impl<T> DList<T> {
     fn insert_before_n(+data: T, neighbour: DListNode<T>) -> DListNode<T> {
         let mut nobe = self.new_link(move data);
         self.insert_left(nobe, neighbour);
-        option::get(nobe)
+        option::get(&nobe)
     }
     /**
      * Insert data into the middle of the list, right of the given node.
@@ -272,7 +272,7 @@ impl<T> DList<T> {
     fn insert_after_n(+data: T, neighbour: DListNode<T>) -> DListNode<T> {
         let mut nobe = self.new_link(move data);
         self.insert_right(neighbour, nobe);
-        option::get(nobe)
+        option::get(&nobe)
     }
 
     /// Remove a node from the head of the list. O(1).
@@ -380,21 +380,25 @@ impl<T> DList<T> {
 
     /// Check data structure integrity. O(n).
     fn assert_consistent() {
-        if option::is_none(self.hd) || option::is_none(self.tl) {
-            assert option::is_none(self.hd) && option::is_none(self.tl);
+        if option::is_none(&self.hd) || option::is_none(&self.tl) {
+            assert option::is_none(&self.hd) && option::is_none(&self.tl);
         }
         // iterate forwards
         let mut count = 0;
         let mut link = self.peek_n();
         let mut rabbit = link;
-        while option::is_some(link) {
-            let nobe = option::get(link);
+        while option::is_some(&link) {
+            let nobe = option::get(&link);
             assert nobe.linked;
             // check cycle
-            if option::is_some(rabbit) { rabbit = option::get(rabbit).next; }
-            if option::is_some(rabbit) { rabbit = option::get(rabbit).next; }
-            if option::is_some(rabbit) {
-                assert !box::ptr_eq(*option::get(rabbit), *nobe);
+            if option::is_some(&rabbit) {
+                rabbit = option::get(&rabbit).next;
+            }
+            if option::is_some(&rabbit) {
+                rabbit = option::get(&rabbit).next;
+            }
+            if option::is_some(&rabbit) {
+                assert !box::ptr_eq(*option::get(&rabbit), *nobe);
             }
             // advance
             link = nobe.next_link();
@@ -404,14 +408,18 @@ impl<T> DList<T> {
         // iterate backwards - some of this is probably redundant.
         link = self.peek_tail_n();
         rabbit = link;
-        while option::is_some(link) {
-            let nobe = option::get(link);
+        while option::is_some(&link) {
+            let nobe = option::get(&link);
             assert nobe.linked;
             // check cycle
-            if option::is_some(rabbit) { rabbit = option::get(rabbit).prev; }
-            if option::is_some(rabbit) { rabbit = option::get(rabbit).prev; }
-            if option::is_some(rabbit) {
-                assert !box::ptr_eq(*option::get(rabbit), *nobe);
+            if option::is_some(&rabbit) {
+                rabbit = option::get(&rabbit).prev;
+            }
+            if option::is_some(&rabbit) {
+                rabbit = option::get(&rabbit).prev;
+            }
+            if option::is_some(&rabbit) {
+                assert !box::ptr_eq(*option::get(&rabbit), *nobe);
             }
             // advance
             link = nobe.prev_link();