summaryrefslogtreecommitdiff
path: root/eval_intern.h
diff options
context:
space:
mode:
authorko1 <ko1@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2007-12-09 06:00:56 +0000
committerko1 <ko1@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2007-12-09 06:00:56 +0000
commita44f38ff52e3d828173e0719bc27ef7a5f381cf4 (patch)
tree171566b9990aad4fe690599bbddad019386a14b7 /eval_intern.h
parent3923d7f420d1cbcad2b7fd781ffeb389d3151d07 (diff)
* eval_intern.h (CHECK_STACK_OVERFLOW): reserve frame size.
[ruby-dev:32485] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@14157 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'eval_intern.h')
-rw-r--r--eval_intern.h2
1 files changed, 1 insertions, 1 deletions
diff --git a/eval_intern.h b/eval_intern.h
index e5680a2..61164de 100644
--- a/eval_intern.h
+++ b/eval_intern.h
@@ -187,7 +187,7 @@ char *strrchr _((const char *, const char));
}
#define CHECK_STACK_OVERFLOW(cfp, margin) do \
- if (((VALUE *)(cfp)->sp) + (margin) >= ((VALUE *)cfp)) { \
+ if (((VALUE *)(cfp)->sp) + (margin) + sizeof(rb_control_frame_t) >= ((VALUE *)cfp)) { \
rb_exc_raise(sysstack_error); \
} \
while (0)