summaryrefslogtreecommitdiff
diff options
-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: