summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authornobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2008-12-08 04:51:43 +0000
committernobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2008-12-08 04:51:43 +0000
commitfb34f6652af2b4daa0dc8047fff5b9d49cf67ecc (patch)
treec7d223e092c12fac9c36acb0bcb95e8e7563513c
parent65962a253cb145d364fa9507929ac655ad10908f (diff)
* eval.c (rb_yield_0): Qundef means no argument. [ruby-Bugs-22525]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@20578 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
-rw-r--r--ChangeLog4
-rw-r--r--eval.c2
2 files changed, 5 insertions, 1 deletions
diff --git a/ChangeLog b/ChangeLog
index 778420cc7a..29f775eb1f 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,7 @@
+Mon Dec 8 13:51:41 2008 Nobuyoshi Nakada <nobu@ruby-lang.org>
+
+ * eval.c (rb_yield_0): Qundef means no argument. [ruby-Bugs-22525]
+
Sun Dec 7 23:47:37 2008 Nobuyoshi Nakada <nobu@ruby-lang.org>
* configure.in (LIBPATHFLAG): use numbered specifier if RPATHFLAG
diff --git a/eval.c b/eval.c
index dbcbb8e5af..c83bb2fc60 100644
--- a/eval.c
+++ b/eval.c
@@ -5060,7 +5060,7 @@ rb_yield_0(val, self, klass, flags, avalue)
switch (node->nd_state) {
case YIELD_FUNC_LAMBDA:
if (!avalue) {
- val = rb_ary_new3(1, val);
+ val = (val == Qundef) ? rb_ary_new2(0) : rb_ary_new3(1, val);
}
break;
case YIELD_FUNC_AVALUE: