1
0
Fork 0
mirror of https://github.com/ruby/ruby.git synced 2022-11-09 12:17:21 -05:00

* array.c (rb_ary_permutation): remove C99 dependency.

[ruby-dev:31934]

* array.c (rb_ary_product): ditto.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@13612 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
matz 2007-10-04 06:51:17 +00:00
parent 137edebc4a
commit 612b2ed6a7
3 changed files with 18 additions and 8 deletions

View file

@ -1,3 +1,10 @@
Thu Oct 4 15:49:33 2007 Yukihiro Matsumoto <matz@ruby-lang.org>
* array.c (rb_ary_permutation): remove C99 dependency.
[ruby-dev:31934]
* array.c (rb_ary_product): ditto.
Wed Oct 3 23:37:17 2007 Yukihiro Matsumoto <matz@ruby-lang.org> Wed Oct 3 23:37:17 2007 Yukihiro Matsumoto <matz@ruby-lang.org>
* ext/nkf/nkf.c, bin/ri, bin/irb: fixed typos in doc and comments. * ext/nkf/nkf.c, bin/ri, bin/irb: fixed typos in doc and comments.

13
array.c
View file

@ -3019,10 +3019,11 @@ permute0(long n, long r, long *p, long index, int *used, VALUE values)
static VALUE static VALUE
rb_ary_permutation(VALUE ary, VALUE num) rb_ary_permutation(VALUE ary, VALUE num)
{ {
long r, n, i;
RETURN_ENUMERATOR(ary, 1, &num); /* Return enumerator if no block */ RETURN_ENUMERATOR(ary, 1, &num); /* Return enumerator if no block */
long r = NUM2LONG(num); /* Permutation size from argument */ r = NUM2LONG(num); /* Permutation size from argument */
long n = RARRAY_LEN(ary); /* Array length */ n = RARRAY_LEN(ary); /* Array length */
long i;
if (r < 0 || n < r) { if (r < 0 || n < r) {
/* no permutations: yield nothing */ /* no permutations: yield nothing */
@ -3151,8 +3152,10 @@ static VALUE
rb_ary_product(int argc, VALUE *argv, VALUE ary) rb_ary_product(int argc, VALUE *argv, VALUE ary)
{ {
int n = argc+1; /* How many arrays we're operating on */ int n = argc+1; /* How many arrays we're operating on */
VALUE arrays[n]; /* The arrays we're computing the product of */ volatile VALUE t0 = rb_str_new(0, n*sizeof(VALUE));
int counters[n]; /* The current position in each one */ volatile VALUE t1 = rb_str_new(0, n*sizeof(int));
VALUE *arrays = (VALUE*)RSTRING_PTR(t0); /* The arrays we're computing the product of */
int *counters = (int*)RSTRING_PTR(t1); /* The current position in each one */
VALUE result; /* The array we'll be returning */ VALUE result; /* The array we'll be returning */
long i,j; long i,j;

View file

@ -1,7 +1,7 @@
#define RUBY_VERSION "1.9.0" #define RUBY_VERSION "1.9.0"
#define RUBY_RELEASE_DATE "2007-10-03" #define RUBY_RELEASE_DATE "2007-10-04"
#define RUBY_VERSION_CODE 190 #define RUBY_VERSION_CODE 190
#define RUBY_RELEASE_CODE 20071003 #define RUBY_RELEASE_CODE 20071004
#define RUBY_PATCHLEVEL 0 #define RUBY_PATCHLEVEL 0
#define RUBY_VERSION_MAJOR 1 #define RUBY_VERSION_MAJOR 1
@ -9,7 +9,7 @@
#define RUBY_VERSION_TEENY 0 #define RUBY_VERSION_TEENY 0
#define RUBY_RELEASE_YEAR 2007 #define RUBY_RELEASE_YEAR 2007
#define RUBY_RELEASE_MONTH 10 #define RUBY_RELEASE_MONTH 10
#define RUBY_RELEASE_DAY 3 #define RUBY_RELEASE_DAY 4
#ifdef RUBY_EXTERN #ifdef RUBY_EXTERN
RUBY_EXTERN const char ruby_version[]; RUBY_EXTERN const char ruby_version[];