diff options
author | nobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2009-04-03 04:52:48 +0000 |
---|---|---|
committer | nobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2009-04-03 04:52:48 +0000 |
commit | 92d6ce2e8de5100b3aafbe7c51702fbe53e9f71e (patch) | |
tree | 333b7bb1c40288d14c43a2c98030d575557100fe /eval.c | |
parent | 31c1ebc6b5fc56fcf3ecc093ddca12005c64e17e (diff) |
------------------------------------------------------------------------
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
Diffstat (limited to 'eval.c')
-rw-r--r-- | eval.c | 9 |
1 files changed, 6 insertions, 3 deletions
@@ -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: |