make: revert/correct fix for plain undef symbol.
[jackhill/mal.git] / vala / step4_if_fn_do.vala
index 13ab98a..93d09c3 100644 (file)
@@ -38,11 +38,12 @@ class Mal.Main: GLib.Object {
             return result;
         }
         if (ast is Mal.Vector) {
-            var results = new GLib.List<Mal.Val>();
-            for (var iter = (ast as Mal.Vector).iter();
-                 iter.nonempty(); iter.step())
-                results.append(EVAL(iter.deref(), env));
-            return new Mal.Vector.from_list(results);
+            var vec = ast as Mal.Vector;
+            var result = new Mal.Vector.with_size(vec.length);
+            var root = new GC.Root(result); (void)root;
+            for (var i = 0; i < vec.length; i++)
+                result[i] = EVAL(vec[i], env);
+            return result;
         }
         if (ast is Mal.Hashmap) {
             var result = new Mal.Hashmap();