summaryrefslogtreecommitdiff
path: root/enum.c
diff options
context:
space:
mode:
authornobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2005-06-09 14:36:02 +0000
committernobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2005-06-09 14:36:02 +0000
commit3f12095fbf552788a2ab0c6e7059527c189aee36 (patch)
treedb27796c9b1eaee0c8fb72fb8f666e3d09450a0d /enum.c
parent27c228d6819b125dc3e9277e74a5d2bb30cf75a9 (diff)
* enum.c (enum_inject): default the result value to Qundef to use
first element as initial value if not given. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@8603 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'enum.c')
-rw-r--r--enum.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/enum.c b/enum.c
index 00d7a58a7e..25432dc99a 100644
--- a/enum.c
+++ b/enum.c
@@ -305,8 +305,10 @@ enum_inject(argc, argv, obj)
{
VALUE memo = Qundef;
- rb_scan_args(argc, argv, "01", &memo);
+ if (rb_scan_args(argc, argv, "01", &memo) == 0)
+ memo = Qundef;
rb_iterate(rb_each, obj, inject_i, (VALUE)&memo);
+ if (memo == Qundef) return Qnil;
return memo;
}