aboutsummaryrefslogtreecommitdiff
path: root/jim.h
diff options
context:
space:
mode:
authorSteve Bennett <steveb@workware.net.au>2011-12-02 13:21:12 +1000
committerSteve Bennett <steveb@workware.net.au>2011-12-02 13:35:03 +1000
commitddfbf9f05de279b162e232bea5a8fe1eafd02e47 (patch)
tree20184903183094d70bf2f489105dbbc7f1f72923 /jim.h
parent666f15ffdee6bcb6b8b481f54c501ed6058cd7fc (diff)
downloadjimtcl-ddfbf9f05de279b162e232bea5a8fe1eafd02e47.zip
jimtcl-ddfbf9f05de279b162e232bea5a8fe1eafd02e47.tar.gz
jimtcl-ddfbf9f05de279b162e232bea5a8fe1eafd02e47.tar.bz2
Prevent infinite recursion for eval, alias
Signed-off-by: Steve Bennett <steveb@workware.net.au>
Diffstat (limited to 'jim.h')
-rw-r--r--jim.h7
1 files changed, 5 insertions, 2 deletions
diff --git a/jim.h b/jim.h
index 4308a69..72c1637 100644
--- a/jim.h
+++ b/jim.h
@@ -140,7 +140,8 @@ extern "C" {
/* The following are internal codes and should never been seen/used */
#define JIM_EVAL 7
-#define JIM_MAX_NESTING_DEPTH 1000 /* default max nesting depth */
+#define JIM_MAX_CALLFRAME_DEPTH 1000 /* default max nesting depth for procs */
+#define JIM_MAX_EVAL_DEPTH 2000 /* default max nesting depth for eval */
/* Some function get an integer argument with flags to change
* the behaviour. */
@@ -517,7 +518,9 @@ typedef struct Jim_Interp {
int errorLine; /* Error line where an error occurred. */
Jim_Obj *errorFileNameObj; /* Error file where an error occurred. */
int addStackTrace; /* > 0 If a level should be added to the stack trace */
- int maxNestingDepth; /* Used for infinite loop detection. */
+ int maxCallFrameDepth; /* Used for infinite loop detection. */
+ int maxEvalDepth; /* Used for infinite loop detection. */
+ int evalDepth; /* Current eval depth */
int returnCode; /* Completion code to return on JIM_RETURN. */
int returnLevel; /* Current level of 'return -level' */
int exitCode; /* Code to return to the OS on JIM_EXIT. */