summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorko1 <ko1@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2007-12-18 12:11:38 +0000
committerko1 <ko1@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2007-12-18 12:11:38 +0000
commit8394de7bfcb053019f96f7171c4f2f4ebbdfbe50 (patch)
tree51df55cb5e66b0464c45919b9eb737f905374a3c
parentcd843108646b999e13cfbf04e51eca30b68850b3 (diff)
* vm.c (invoke_block): merge 2 stack overflow checks.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@14300 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
-rw-r--r--ChangeLog4
-rw-r--r--vm.c3
2 files changed, 5 insertions, 2 deletions
diff --git a/ChangeLog b/ChangeLog
index 495934ac8b..e5183f7bf2 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,7 @@
+Tue Dec 18 21:09:23 2007 Koichi Sasada <ko1@atdot.net>
+
+ * vm.c (invoke_block): merge 2 stack overflow checks.
+
Tue Dec 18 20:58:35 2007 Koichi Sasada <ko1@atdot.net>
* compile.c, insnhelper.ci, insns.def, object.c, vm.c, vm.h:
diff --git a/vm.c b/vm.c
index 79404a3fa4..29e23b4a6f 100644
--- a/vm.c
+++ b/vm.c
@@ -550,8 +550,7 @@ invoke_block(rb_thread_t *th, rb_block_t *block, VALUE self, int argc, VALUE *ar
rb_vm_set_finish_env(th);
- CHECK_STACK_OVERFLOW(th->cfp, argc);
- CHECK_STACK_OVERFLOW(th->cfp, iseq->stack_max);
+ CHECK_STACK_OVERFLOW(th->cfp, argc + iseq->stack_max);
for (i=0; i<argc; i++) {
th->cfp->sp[i] = argv[i];