aboutsummaryrefslogtreecommitdiff
path: root/eval.cpp
diff options
context:
space:
mode:
authorTeddy <ted.sybil@gmail.com>2013-08-09 10:31:09 +0800
committerTeddy <ted.sybil@gmail.com>2013-08-09 10:31:09 +0800
commit0c606491335e99017897a7710461214412243dd7 (patch)
treebb14db40980d5029d9e582cb0b130e328657d401 /eval.cpp
parente782bbeb805fffaaa4a118fb88be96894ac68c28 (diff)
...
Diffstat (limited to 'eval.cpp')
-rw-r--r--eval.cpp2
1 files changed, 2 insertions, 0 deletions
diff --git a/eval.cpp b/eval.cpp
index 2d03c0c..aa4f729 100644
--- a/eval.cpp
+++ b/eval.cpp
@@ -93,6 +93,8 @@ EvalObj *Evaluator::run_expr(Pair *prog) {
while((*eval_stack)->is_ret_addr())
{
+ if (top_ptr == eval_stack + EVAL_STACK_SIZE)
+ throw TokenError("Evaluation", RUN_ERR_STACK_OVERFLOW);
for (; pc && pc->skip; pc = pc->next);
if (pc)
push(pc, top_ptr, envt);