From 92d6ce2e8de5100b3aafbe7c51702fbe53e9f71e Mon Sep 17 00:00:00 2001 From: nobu Date: Fri, 3 Apr 2009 04:52:48 +0000 Subject: ------------------------------------------------------------------------ r15996 | nobu | 2008-04-14 12:52:27 +0900 (Mon, 14 Apr 2008) | 2 lines * gc.c (Init_stack): use ruby_init_stack. [ruby-dev:34350] ------------------------------------------------------------------------ ------------------------------------------------------------------------ r17036 | nobu | 2008-06-09 09:54:23 +0900 (Mon, 09 Jun 2008) | 2 lines * include/ruby/intern.h (Init_stack): make to call ruby_init_stack. ------------------------------------------------------------------------ git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@23127 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- ChangeLog | 15 +++++++++++++++ eval.c | 9 ++++++--- 2 files changed, 21 insertions(+), 3 deletions(-) diff --git a/ChangeLog b/ChangeLog index 1b3c0e44a0..2fdf8292ac 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,18 @@ +Fri Apr 3 13:52:47 2009 Nobuyoshi Nakada + + ------------------------------------------------------------------------ + r15996 | nobu | 2008-04-14 12:52:27 +0900 (Mon, 14 Apr 2008) | 2 lines + + * gc.c (Init_stack): use ruby_init_stack. [ruby-dev:34350] + + ------------------------------------------------------------------------ + ------------------------------------------------------------------------ + r17036 | nobu | 2008-06-09 09:54:23 +0900 (Mon, 09 Jun 2008) | 2 lines + + * include/ruby/intern.h (Init_stack): make to call ruby_init_stack. + + ------------------------------------------------------------------------ + Fri Apr 3 12:46:19 2009 Nobuyoshi Nakada * ext/extmk.rb: quotes arguments with spaces always. diff --git a/eval.c b/eval.c index ce63b8df03..5a02f813e7 100644 --- a/eval.c +++ b/eval.c @@ -656,7 +656,7 @@ rb_export_method(klass, name, noex) ID noex; { NODE *body; - VALUE origin; + VALUE origin = 0; if (klass == rb_cObject) { rb_secure(4); @@ -2405,6 +2405,7 @@ is_defined(self, node, buf) char *buf; { VALUE val; /* OK */ + volatile VALUE vval; int state; again: @@ -2434,13 +2435,14 @@ is_defined(self, node, buf) case NODE_CALL: PUSH_TAG(PROT_NONE); if ((state = EXEC_TAG()) == 0) { - val = rb_eval(self, node->nd_recv); + vval = rb_eval(self, node->nd_recv); } POP_TAG(); if (state) { ruby_errinfo = Qnil; return 0; } + val = vval; check_bound: { int call = nd_type(node)==NODE_CALL; @@ -2536,7 +2538,7 @@ is_defined(self, node, buf) case NODE_COLON2: PUSH_TAG(PROT_NONE); if ((state = EXEC_TAG()) == 0) { - val = rb_eval(self, node->nd_head); + vval = rb_eval(self, node->nd_head); } POP_TAG(); if (state) { @@ -2544,6 +2546,7 @@ is_defined(self, node, buf) return 0; } else { + val = vval; switch (TYPE(val)) { case T_CLASS: case T_MODULE: -- cgit v1.2.3