enum_first_19.patch
| enum.c (working copy) | ||
|---|---|---|
| 619 | 619 |
else {
|
| 620 | 620 |
long n = NUM2LONG(ary[0]); |
| 621 | 621 | |
| 622 |
rb_ary_push(ary[1], i); |
|
| 623 |
n--; |
|
| 622 | 624 |
if (n <= 0) {
|
| 623 | 625 |
rb_iter_break(); |
| 624 | 626 |
} |
| 625 |
rb_ary_push(ary[1], i); |
|
| 626 |
n--; |
|
| 627 | 627 |
ary[0] = INT2NUM(n); |
| 628 | 628 |
} |
| 629 | 629 |
return Qnil; |
| ... | ... | |
| 649 | 649 |
ary[0] = ary[1] = Qnil; |
| 650 | 650 |
} |
| 651 | 651 |
else {
|
| 652 |
long len; |
|
| 652 | 653 |
rb_scan_args(argc, argv, "01", &n); |
| 653 |
ary[0] = n; |
|
| 654 |
ary[1] = rb_ary_new2(NUM2LONG(n)); |
|
| 654 |
len = NUM2LONG(n); |
|
| 655 |
if (len == 0) return rb_ary_new2(0); |
|
| 656 |
ary[0] = INT2NUM(len); |
|
| 657 |
ary[1] = rb_ary_new2(len); |
|
| 655 | 658 |
} |
| 656 | 659 |
rb_block_call(obj, id_each, 0, 0, first_i, (VALUE)ary); |
| 657 | 660 | |