* enum.c (enum_min, enum_max, enum_min_by, enum_max_by): do not ignore
nil as the first element. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@8664 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
parent
66e5af96b2
commit
9480c6b720
@ -1,3 +1,8 @@
|
|||||||
|
Sat Jun 25 15:49:18 2005 Nobuyoshi Nakada <nobu@ruby-lang.org>
|
||||||
|
|
||||||
|
* enum.c (enum_min, enum_max, enum_min_by, enum_max_by): do not ignore
|
||||||
|
nil as the first element.
|
||||||
|
|
||||||
Sat Jun 25 15:13:54 2005 Hirokazu Yamamoto <ocean@m2.ccsnet.ne.jp>
|
Sat Jun 25 15:13:54 2005 Hirokazu Yamamoto <ocean@m2.ccsnet.ne.jp>
|
||||||
|
|
||||||
* lib/set.rb (Set#==): [ruby-dev:25206] (ported from ruby_1_8 branch)
|
* lib/set.rb (Set#==): [ruby-dev:25206] (ported from ruby_1_8 branch)
|
||||||
|
22
enum.c
22
enum.c
@ -607,7 +607,7 @@ min_i(i, memo)
|
|||||||
{
|
{
|
||||||
VALUE cmp;
|
VALUE cmp;
|
||||||
|
|
||||||
if (NIL_P(*memo)) {
|
if (*memo == Qundef) {
|
||||||
*memo = i;
|
*memo = i;
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
@ -626,7 +626,7 @@ min_ii(i, memo)
|
|||||||
{
|
{
|
||||||
VALUE cmp;
|
VALUE cmp;
|
||||||
|
|
||||||
if (NIL_P(*memo)) {
|
if (*memo == Qundef) {
|
||||||
*memo = i;
|
*memo = i;
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
@ -657,7 +657,7 @@ static VALUE
|
|||||||
enum_min(obj)
|
enum_min(obj)
|
||||||
VALUE obj;
|
VALUE obj;
|
||||||
{
|
{
|
||||||
VALUE result = Qnil;
|
VALUE result = Qundef;
|
||||||
|
|
||||||
rb_iterate(rb_each, obj, rb_block_given_p() ? min_ii : min_i, (VALUE)&result);
|
rb_iterate(rb_each, obj, rb_block_given_p() ? min_ii : min_i, (VALUE)&result);
|
||||||
return result;
|
return result;
|
||||||
@ -670,7 +670,7 @@ max_i(i, memo)
|
|||||||
{
|
{
|
||||||
VALUE cmp;
|
VALUE cmp;
|
||||||
|
|
||||||
if (NIL_P(*memo)) {
|
if (*memo == Qundef) {
|
||||||
*memo = i;
|
*memo = i;
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
@ -689,7 +689,7 @@ max_ii(i, memo)
|
|||||||
{
|
{
|
||||||
VALUE cmp;
|
VALUE cmp;
|
||||||
|
|
||||||
if (NIL_P(*memo)) {
|
if (*memo == Qundef) {
|
||||||
*memo = i;
|
*memo = i;
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
@ -719,7 +719,7 @@ static VALUE
|
|||||||
enum_max(obj)
|
enum_max(obj)
|
||||||
VALUE obj;
|
VALUE obj;
|
||||||
{
|
{
|
||||||
VALUE result = Qnil;
|
VALUE result = Qundef;
|
||||||
|
|
||||||
rb_iterate(rb_each, obj, rb_block_given_p() ? max_ii : max_i, (VALUE)&result);
|
rb_iterate(rb_each, obj, rb_block_given_p() ? max_ii : max_i, (VALUE)&result);
|
||||||
return result;
|
return result;
|
||||||
@ -733,7 +733,7 @@ min_by_i(i, memo)
|
|||||||
VALUE v;
|
VALUE v;
|
||||||
|
|
||||||
v = rb_yield(i);
|
v = rb_yield(i);
|
||||||
if (NIL_P(memo[0])) {
|
if (memo[0] == Qundef) {
|
||||||
memo[0] = v;
|
memo[0] = v;
|
||||||
memo[1] = i;
|
memo[1] = i;
|
||||||
}
|
}
|
||||||
@ -762,7 +762,8 @@ enum_min_by(obj)
|
|||||||
VALUE memo[2];
|
VALUE memo[2];
|
||||||
|
|
||||||
rb_need_block();
|
rb_need_block();
|
||||||
memo[0] = memo[1] = Qnil;
|
memo[0] = Qundef;
|
||||||
|
memo[1] = Qnil;
|
||||||
rb_iterate(rb_each, obj, min_by_i, (VALUE)memo);
|
rb_iterate(rb_each, obj, min_by_i, (VALUE)memo);
|
||||||
return memo[1];
|
return memo[1];
|
||||||
}
|
}
|
||||||
@ -775,7 +776,7 @@ max_by_i(i, memo)
|
|||||||
VALUE v;
|
VALUE v;
|
||||||
|
|
||||||
v = rb_yield(i);
|
v = rb_yield(i);
|
||||||
if (NIL_P(memo[0])) {
|
if (memo[0] == Qundef) {
|
||||||
memo[0] = v;
|
memo[0] = v;
|
||||||
memo[1] = i;
|
memo[1] = i;
|
||||||
}
|
}
|
||||||
@ -804,7 +805,8 @@ enum_max_by(obj)
|
|||||||
VALUE memo[2];
|
VALUE memo[2];
|
||||||
|
|
||||||
rb_need_block();
|
rb_need_block();
|
||||||
memo[0] = memo[1] = Qnil;
|
memo[0] = Qundef;
|
||||||
|
memo[1] = Qnil;
|
||||||
rb_iterate(rb_each, obj, max_by_i, (VALUE)memo);
|
rb_iterate(rb_each, obj, max_by_i, (VALUE)memo);
|
||||||
return memo[1];
|
return memo[1];
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user