summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog7
-rw-r--r--array.c13
-rw-r--r--version.h6
3 files changed, 18 insertions, 8 deletions
diff --git a/ChangeLog b/ChangeLog
index e65e29eeea..413c7b62ef 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -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>
* ext/nkf/nkf.c, bin/ri, bin/irb: fixed typos in doc and comments.
diff --git a/array.c b/array.c
index 2d99d14956..a75def20b8 100644
--- a/array.c
+++ b/array.c
@@ -3019,10 +3019,11 @@ permute0(long n, long r, long *p, long index, int *used, VALUE values)
static VALUE
rb_ary_permutation(VALUE ary, VALUE num)
{
+ long r, n, i;
+
RETURN_ENUMERATOR(ary, 1, &num); /* Return enumerator if no block */
- long r = NUM2LONG(num); /* Permutation size from argument */
- long n = RARRAY_LEN(ary); /* Array length */
- long i;
+ r = NUM2LONG(num); /* Permutation size from argument */
+ n = RARRAY_LEN(ary); /* Array length */
if (r < 0 || n < r) {
/* no permutations: yield nothing */
@@ -3151,8 +3152,10 @@ static VALUE
rb_ary_product(int argc, VALUE *argv, VALUE ary)
{
int n = argc+1; /* How many arrays we're operating on */
- VALUE arrays[n]; /* The arrays we're computing the product of */
- int counters[n]; /* The current position in each one */
+ volatile VALUE t0 = rb_str_new(0, n*sizeof(VALUE));
+ 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 */
long i,j;
diff --git a/version.h b/version.h
index ea5e828268..402f799d68 100644
--- a/version.h
+++ b/version.h
@@ -1,7 +1,7 @@
#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_RELEASE_CODE 20071003
+#define RUBY_RELEASE_CODE 20071004
#define RUBY_PATCHLEVEL 0
#define RUBY_VERSION_MAJOR 1
@@ -9,7 +9,7 @@
#define RUBY_VERSION_TEENY 0
#define RUBY_RELEASE_YEAR 2007
#define RUBY_RELEASE_MONTH 10
-#define RUBY_RELEASE_DAY 3
+#define RUBY_RELEASE_DAY 4
#ifdef RUBY_EXTERN
RUBY_EXTERN const char ruby_version[];