[libgee] Change default implementation of fold



commit 5975c7f02b3baa7d479889ba144cd8ff59b4db5b
Author: Maciej Piechotka <uzytkownik2 gmail com>
Date:   Tue Apr 26 11:53:38 2011 +0200

    Change default implementation of fold

 gee/iterator.vala |    7 +++----
 1 files changed, 3 insertions(+), 4 deletions(-)
---
diff --git a/gee/iterator.vala b/gee/iterator.vala
index 48d50b8..563a2dd 100644
--- a/gee/iterator.vala
+++ b/gee/iterator.vala
@@ -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;
 	}
 	



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]