Chromium Code Reviews| Index: corelib/src/implementation/queue.dart |
| =================================================================== |
| --- corelib/src/implementation/queue.dart (revision 1518) |
| +++ corelib/src/implementation/queue.dart (working copy) |
| @@ -171,24 +171,27 @@ |
| void forEach(void f(E element)) { |
| DoubleLinkedQueueEntry<E> entry = _sentinel._next; |
| while (entry !== _sentinel) { |
| + DoubleLinkedQueueEntry<E> nextEntry = entry._next; |
| f(entry._element); |
| - entry = entry._next; |
| + entry = nextEntry; |
| } |
| } |
| void forEachEntry(void f(DoubleLinkedQueueEntry<E> element)) { |
| DoubleLinkedQueueEntry<E> entry = _sentinel._next; |
| while (entry !== _sentinel) { |
| + DoubleLinkedQueueEntry<E> nextEntry = entry._next; |
| f(entry); |
| - entry = entry._next; |
| + entry = nextEntry; |
|
siva
2011/11/14 21:26:17
How will this protect against somebody writing an
hausner
2011/11/14 21:58:02
I agree with Siva's comment. Probably need to have
srdjan
2011/11/14 22:15:33
It is possible for programmers to write the closur
srdjan
2011/11/14 22:15:33
Filed bug 442 for clarification of modification be
|
| } |
| } |
| bool every(bool f(E element)) { |
| DoubleLinkedQueueEntry<E> entry = _sentinel._next; |
| while (entry !== _sentinel) { |
| + DoubleLinkedQueueEntry<E> nextEntry = entry._next; |
| if (!f(entry._element)) return false; |
| - entry = entry._next; |
| + entry = nextEntry; |
| } |
| return true; |
| } |
| @@ -196,8 +199,9 @@ |
| bool some(bool f(E element)) { |
| DoubleLinkedQueueEntry<E> entry = _sentinel._next; |
| while (entry !== _sentinel) { |
| + DoubleLinkedQueueEntry<E> nextEntry = entry._next; |
| if (f(entry._element)) return true; |
| - entry = entry._next; |
| + entry = nextEntry; |
| } |
| return false; |
| } |
| @@ -206,8 +210,9 @@ |
| Queue<E> other = new Queue<E>(); |
| DoubleLinkedQueueEntry<E> entry = _sentinel._next; |
| while (entry !== _sentinel) { |
| + DoubleLinkedQueueEntry<E> nextEntry = entry._next; |
| if (f(entry._element)) other.addLast(entry._element); |
| - entry = entry._next; |
| + entry = nextEntry; |
| } |
| return other; |
| } |