Fix memory leak in default implementation of foreach and fold
authorMaciej Piechotka <uzytkownik2@gmail.com>
Sat, 30 Apr 2011 10:54:31 +0000 (12:54 +0200)
committerMaciej Piechotka <uzytkownik2@gmail.com>
Sat, 30 Apr 2011 10:54:31 +0000 (12:54 +0200)
gee/iterator.vala

index 563a2dd..0a286d0 100644 (file)
@@ -25,8 +25,8 @@
  */
 
 namespace Gee {
-       public delegate A FoldFunc<A, G> (G g, owned A a);
-       public delegate void ForallFunc<G> (G g);
+       public delegate A FoldFunc<A, G> (owned G g, owned A a);
+       public delegate void ForallFunc<G> (owned G g);
 }
 
 /**
@@ -95,7 +95,7 @@ public interface Gee.Iterator<G> : Object {
         */
        public virtual A fold<A> (FoldFunc<A, G> f, owned A seed)
        {
-               this.foreach ((item) => {seed = f (item, (owned) seed);});
+               this.foreach ((item) => {seed = f ((owned) item, (owned) seed);});
                return (owned) seed;
        }