diff options
Diffstat (limited to 'src/libcore/dlist.rs')
| -rw-r--r-- | src/libcore/dlist.rs | 44 |
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(); |
