diff options
author | Steve Bennett <steveb@workware.net.au> | 2011-12-02 13:21:12 +1000 |
---|---|---|
committer | Steve Bennett <steveb@workware.net.au> | 2011-12-02 13:35:03 +1000 |
commit | ddfbf9f05de279b162e232bea5a8fe1eafd02e47 (patch) | |
tree | 20184903183094d70bf2f489105dbbc7f1f72923 /jim.h | |
parent | 666f15ffdee6bcb6b8b481f54c501ed6058cd7fc (diff) | |
download | jimtcl-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.h | 7 |
1 files changed, 5 insertions, 2 deletions
@@ -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. */ |