diff options
author | matz <matz@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2008-03-11 16:15:14 +0000 |
---|---|---|
committer | matz <matz@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2008-03-11 16:15:14 +0000 |
commit | 8f14847366d5e47ad5bde75b84f836177f11ec07 (patch) | |
tree | 9bdf1543399be56c07a2684236a7e9a339f5ad83 /array.c | |
parent | 83c017d7af594df9e10a1ba5fbccb063f491bb25 (diff) |
* array.c (rb_ary_combination): argument check before creating
Enumerator.
* array.c (rb_ary_permutation): ditto.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@15750 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'array.c')
-rw-r--r-- | array.c | 4 |
1 files changed, 2 insertions, 2 deletions
@@ -3030,8 +3030,8 @@ rb_ary_permutation(int argc, VALUE *argv, VALUE ary) VALUE num; long r, n, i; - RETURN_ENUMERATOR(ary, argc, argv); /* Return enumerator if no block */ n = RARRAY_LEN(ary); /* Array length */ + RETURN_ENUMERATOR(ary, argc, argv); /* Return enumerator if no block */ rb_scan_args(argc, argv, "01", &num); r = NIL_P(num) ? n : NUM2LONG(num); /* Permutation size from argument */ @@ -3111,8 +3111,8 @@ rb_ary_combination(VALUE ary, VALUE num) { long n, i, len; - RETURN_ENUMERATOR(ary, 1, &num); n = NUM2LONG(num); + RETURN_ENUMERATOR(ary, 1, &num); len = RARRAY_LEN(ary); if (n < 0 || len < n) { /* yield nothing */ |