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 | afce7aab00d697864b4c7ed9d1ced37aafa29556 (patch) | |
tree | 9bdf1543399be56c07a2684236a7e9a339f5ad83 /array.c | |
parent | 5facfe6e74a2ce28dbcca72892f1cb6e611c57e9 (diff) | |
download | ruby-afce7aab00d697864b4c7ed9d1ced37aafa29556.tar.gz ruby-afce7aab00d697864b4c7ed9d1ced37aafa29556.tar.xz ruby-afce7aab00d697864b4c7ed9d1ced37aafa29556.zip |
* array.c (rb_ary_combination): argument check before creating
Enumerator.
* array.c (rb_ary_permutation): ditto.
git-svn-id: http://svn.ruby-lang.org/repos/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 */ |