aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorko1 <ko1@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2007-06-06 01:57:36 +0000
committerko1 <ko1@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2007-06-06 01:57:36 +0000
commitbf544c05d26ec4cb151cd322e69a495a58924a0d (patch)
treef66f7dcec7cf7934975a70d9581136851ea0247a
parent9c0b2b8b65dc27d27bcd2d417a116e7a343399a2 (diff)
downloadruby-bf544c05d26ec4cb151cd322e69a495a58924a0d.tar.gz
* eval.c (rb_yield): fix to check Qundef.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@12449 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
-rw-r--r--ChangeLog4
-rw-r--r--eval.c7
2 files changed, 10 insertions, 1 deletions
diff --git a/ChangeLog b/ChangeLog
index 9270ed6574..96f2879a41 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,7 @@
+Wed Jun 6 10:58:23 2007 Koichi Sasada <ko1@atdot.net>
+
+ * eval.c (rb_yield): fix to check Qundef.
+
Wed Jun 6 10:57:45 2007 Koichi Sasada <ko1@atdot.net>
* test/ruby/test_continuation.rb: add a test for last commit.
diff --git a/eval.c b/eval.c
index 38c8b84cdc..0c6aceee7e 100644
--- a/eval.c
+++ b/eval.c
@@ -914,7 +914,12 @@ VALUE
rb_yield(VALUE val)
{
volatile VALUE tmp = val;
- tmp = rb_yield_0(1, &val);
+ if (val == Qundef) {
+ tmp = rb_yield_0(0, 0);
+ }
+ else {
+ tmp = rb_yield_0(1, &val);
+ }
return tmp;
}