summaryrefslogtreecommitdiff
path: root/eval.c
diff options
context:
space:
mode:
authornobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2005-02-17 14:29:20 +0000
committernobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2005-02-17 14:29:20 +0000
commit02b8414d98c0cc66b7b3870c26a59dd8c5600cf4 (patch)
treea9f66478d496707fd4df055cdec51470e4bfb9ad /eval.c
parent52dca163848ad38fd2c078e4099d657b2670f591 (diff)
* eval.c (rb_thread_start_1): initialize newly pushed frame.
fixed: [ruby-dev:25707] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@7992 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'eval.c')
-rw-r--r--eval.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/eval.c b/eval.c
index 78fa74d1c6..911a10a2f6 100644
--- a/eval.c
+++ b/eval.c
@@ -11756,7 +11756,9 @@ rb_thread_start_1()
ruby_cref = ip->cref;
ruby_dyna_vars = ((struct BLOCK *)DATA_PTR(proc))->dyna_vars;
PUSH_FRAME();
- _frame.iter = ITER_CUR;
+ *ruby_frame = *ip->frame;
+ ruby_frame->prev = ip->frame;
+ ruby_frame->iter = ITER_CUR;
PUSH_TAG(PROT_NONE);
if ((state = EXEC_TAG()) == 0) {
if (THREAD_SAVE_CONTEXT(th) == 0) {