From 6773107adb5060a49c7b59868c6716dcc5f4bfa3 Mon Sep 17 00:00:00 2001 From: Stefan O'Rear Date: Mon, 9 Aug 2010 22:54:16 -0700 Subject: [PATCH] Fix recursive gather/take --- Kernel.cs | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/Kernel.cs b/Kernel.cs index a5e1fbcb..77e2f334 100644 --- a/Kernel.cs +++ b/Kernel.cs @@ -424,11 +424,10 @@ public class Kernel { } } - public static Frame TakeReturnFrame; + public static Stack TakeReturnStack = new Stack(); public static Frame Take(Frame th, Variable payload) { - Frame r = TakeReturnFrame; - TakeReturnFrame = null; + Frame r = TakeReturnStack.Pop(); r.lex["$nextframe"] = NewROScalar(th); r.resultSlot = payload; th.resultSlot = payload; @@ -436,7 +435,7 @@ public class Kernel { } public static Frame CoTake(Frame th, Frame from) { - TakeReturnFrame = th; + TakeReturnStack.Push(th); return from; }