From 702e431f1b3741ac3e88d05e450f32b745207f5c Mon Sep 17 00:00:00 2001 From: ko1 Date: Mon, 25 Jun 2007 18:39:23 +0000 Subject: [PATCH] * cont.c (rb_fiber_s_new), yarvcore.c (th_init2): fix to clear VM stack ([ruby-dev:31046]). git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@12618 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- ChangeLog | 5 +++++ cont.c | 2 ++ yarvcore.c | 5 +++-- 3 files changed, 10 insertions(+), 2 deletions(-) diff --git a/ChangeLog b/ChangeLog index 9cdafd20b6..250aa589d9 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +Tue Jun 26 03:38:31 2007 Koichi Sasada + + * cont.c (rb_fiber_s_new), yarvcore.c (th_init2): fix to clear + VM stack ([ruby-dev:31046]). + Tue Jun 26 03:15:27 2007 Koichi Sasada * compile.c: rename setup_arg() to setup_args(). diff --git a/cont.c b/cont.c index 71bc4601b2..022df065a7 100644 --- a/cont.c +++ b/cont.c @@ -474,6 +474,8 @@ rb_fiber_s_new(VALUE self) th->stack = 0; th->stack_size = FIBER_STACK_SIZE; th->stack = ALLOC_N(VALUE, th->stack_size); + MEMZERO(th->stack, VALUE, th->stack_size); + th->cfp = (void *)(th->stack + th->stack_size); th->cfp--; th->cfp->pc = 0; diff --git a/yarvcore.c b/yarvcore.c index e4e93aa0e4..f5b3225a2f 100644 --- a/yarvcore.c +++ b/yarvcore.c @@ -327,9 +327,10 @@ th_init2(rb_thread_t *th) MEMZERO(th, rb_thread_t, 1); /* allocate thread stack */ - th->stack = ALLOC_N(VALUE, RUBY_VM_THREAD_STACK_SIZE); - th->stack_size = RUBY_VM_THREAD_STACK_SIZE; + th->stack = ALLOC_N(VALUE, th->stack_size); + MEMZERO(th->stack, VALUE, th->stack_size); + th->cfp = (void *)(th->stack + th->stack_size); th->cfp--;