aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSteve Bennett <steveb@workware.net.au>2023-02-25 12:09:51 +1000
committerSteve Bennett <steveb@workware.net.au>2023-02-25 12:09:51 +1000
commit1933e5457b9512d39ebbe11ed32578aada149f49 (patch)
treedf742285877d74df58c21236fcb5aebffe704240
parentf1edcd2f995870b89d7742b829d39e36d43b177d (diff)
downloadjimtcl-1933e5457b9512d39ebbe11ed32578aada149f49.zip
jimtcl-1933e5457b9512d39ebbe11ed32578aada149f49.tar.gz
jimtcl-1933e5457b9512d39ebbe11ed32578aada149f49.tar.bz2
jim: fix crash on infinite eval recursion0.82
When this condition was caught, eval frame was incorrectly popped even though it was never pushed. Signed-off-by: Steve Bennett <steveb@workware.net.au>
-rw-r--r--jim.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/jim.c b/jim.c
index 772435e..ea60e10 100644
--- a/jim.c
+++ b/jim.c
@@ -10830,11 +10830,11 @@ tailcall:
interp->argc = prev_argc;
interp->argv = prev_argv;
+ JimPopEvalFrame(interp);
+
out:
JimDecrCmdRefCount(interp, cmdPtr);
- JimPopEvalFrame(interp);
-
if (interp->framePtr->tailcallObj) {
/* We might have skipped invoking a tailcall, perhaps because of an error
* in defer handling so cleanup now