From fb34f6652af2b4daa0dc8047fff5b9d49cf67ecc Mon Sep 17 00:00:00 2001 From: nobu Date: Mon, 8 Dec 2008 04:51:43 +0000 Subject: * 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 --- ChangeLog | 4 ++++ eval.c | 2 +- 2 files changed, 5 insertions(+), 1 deletion(-) 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 + + * eval.c (rb_yield_0): Qundef means no argument. [ruby-Bugs-22525] + Sun Dec 7 23:47:37 2008 Nobuyoshi Nakada * 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: -- cgit v1.2.3