Remove use of explicit iterators
authorMaciej Piechotka <uzytkownik2@gmail.com>
Sun, 30 Sep 2012 11:22:36 +0000 (13:22 +0200)
committerMaciej Piechotka <uzytkownik2@gmail.com>
Sun, 30 Sep 2012 11:22:36 +0000 (13:22 +0200)
gee/arraylist.vala
gee/linkedlist.vala

index 5242afe..3312aff 100644 (file)
@@ -243,9 +243,7 @@ public class Gee.ArrayList<G> : AbstractBidirList<G> {
                }
 
                grow_if_needed (collection.size);
-               foreach (G item in collection) {
-                       _items[_size++] = item;
-               }
+               collection.foreach ((item) => {_items[_size++] = item; return true;});
                _stamp++;
                return true;
        }
index 4a5acd4..52e74c9 100644 (file)
@@ -193,17 +193,13 @@ public class Gee.LinkedList<G> : AbstractBidirList<G>, Queue<G>, Deque<G> {
         * {@inheritDoc}
         */
        public override int index_of (G item) {
-               int result = -1;
                int idx = 0;
-               foreach (G node_item in (Collection)this) {
-                       if (this.equal_func (item, node_item)) {
-                               result = idx;
-                               break;
-                       } else {
-                               idx++;
+               for (weak Node<G>? node = _head; node != null; node = node.next, idx++) {
+                       if (this.equal_func (item, node.data)) {
+                               return idx;
                        }
                }
-               return result;
+               return -1;
        }
 
        /**