summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authornobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2009-04-03 04:52:48 +0000
committernobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2009-04-03 04:52:48 +0000
commit92d6ce2e8de5100b3aafbe7c51702fbe53e9f71e (patch)
tree333b7bb1c40288d14c43a2c98030d575557100fe
parent31c1ebc6b5fc56fcf3ecc093ddca12005c64e17e (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
-rw-r--r--ChangeLog15
-rw-r--r--eval.c9
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 <[email protected]>
+
+ ------------------------------------------------------------------------
+ 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 <[email protected]>
* 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: