summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog5
-rw-r--r--hash.c5
2 files changed, 10 insertions, 0 deletions
diff --git a/ChangeLog b/ChangeLog
index bae073b40a..25665c97ee 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+Wed Feb 6 01:47:39 2008 Yukihiro Matsumoto <matz@ruby-lang.org>
+
+ * hash.c (rb_hash_flatten): do not flatten recursively by default.
+ [ruby-dev:33603]
+
Wed Feb 6 00:50:19 2008 NAKAMURA Usaku <usa@ruby-lang.org>
* insns.def (adjuststack): never use INC_SP with minus value because
diff --git a/hash.c b/hash.c
index 0328d9d1aa..c3b07442ff 100644
--- a/hash.c
+++ b/hash.c
@@ -1673,6 +1673,11 @@ rb_hash_flatten(int argc, VALUE *argv, VALUE hash)
VALUE ary;
ary = rb_hash_to_a(hash);
+ if (argc == 0) {
+ argc = 1;
+ tmp = INT2FIX(1);
+ argv = &tmp;
+ }
rb_funcall2(ary, rb_intern("flatten!"), argc, argv);
return ary;
}