summaryrefslogtreecommitdiff
path: root/enum.c
diff options
context:
space:
mode:
authornormal <normal@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2015-06-25 23:06:48 +0000
committernormal <normal@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2015-06-25 23:06:48 +0000
commit9f1c009497431a5fd161eb530f8f1ccfbe0acac3 (patch)
tree585cbb72c39af6cf202074b53a9c43b04531a19d /enum.c
parentcc5547a4ade99311a9fe37754083f996a6c83a2d (diff)
enum.c (enum_minmax): simplify return value creation
No need to call three functions on success when one will do. This results in less LoC and smaller object code, too: text data bss dec hex filename 33860 0 296 34156 856c gcc/enum.o-before 33852 0 296 34148 8564 gcc/enum.o * enum.c (enum_minmax): simplify return value creation * test/ruby/test_enum.rb: test behavior on empty git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@51036 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'enum.c')
-rw-r--r--enum.c6
1 files changed, 2 insertions, 4 deletions
diff --git a/enum.c b/enum.c
index 4b1e119..e14ebfa 100644
--- a/enum.c
+++ b/enum.c
@@ -1715,7 +1715,6 @@ enum_minmax(VALUE obj)
{
struct MEMO *memo = MEMO_NEW(Qundef, Qundef, Qundef);
struct minmax_t *m = (struct minmax_t *)&memo->v1;
- VALUE ary = rb_ary_new3(2, Qnil, Qnil);
m->min = Qundef;
m->last = Qundef;
@@ -1730,10 +1729,9 @@ enum_minmax(VALUE obj)
minmax_i_update(m->last, m->last, m);
}
if (m->min != Qundef) {
- rb_ary_store(ary, 0, m->min);
- rb_ary_store(ary, 1, m->max);
+ return rb_assoc_new(m->min, m->max);
}
- return ary;
+ return rb_assoc_new(Qnil, Qnil);
}
static VALUE