Change default implementation of fold
authorMaciej Piechotka <uzytkownik2@gmail.com>
Tue, 26 Apr 2011 09:53:38 +0000 (11:53 +0200)
committerMaciej Piechotka <uzytkownik2@gmail.com>
Tue, 26 Apr 2011 09:53:45 +0000 (11:53 +0200)
gee/iterator.vala

index 48d50b8..563a2dd 100644 (file)
@@ -90,13 +90,12 @@ public interface Gee.Iterator<G> : Object {
         *
         * Operation moves the iterator to last element in iteration. If iterator
         * points at some element it will be included in iteration.
+        *
+        * Note: Default implementation uses {@link foreach}.
         */
        public virtual A fold<A> (FoldFunc<A, G> f, owned A seed)
        {
-               if (valid)
-                       seed = f (get (), (owned) seed);
-               while (next ())
-                       seed = f (get (), (owned) seed);
+               this.foreach ((item) => {seed = f (item, (owned) seed);});
                return (owned) seed;
        }