summaryrefslogtreecommitdiffstats
path: root/array.c
diff options
context:
space:
mode:
authormatz <matz@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2008-03-11 16:15:14 +0000
committermatz <matz@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2008-03-11 16:15:14 +0000
commitafce7aab00d697864b4c7ed9d1ced37aafa29556 (patch)
tree9bdf1543399be56c07a2684236a7e9a339f5ad83 /array.c
parent5facfe6e74a2ce28dbcca72892f1cb6e611c57e9 (diff)
downloadruby-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.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/array.c b/array.c
index 7e9dcfa07..41a94783f 100644
--- a/array.c
+++ b/array.c
@@ -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 */