summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authormatz <matz@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2008-05-22 00:57:53 +0000
committermatz <matz@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2008-05-22 00:57:53 +0000
commiteb995e112023e7485464d0e1ce70783eaf673e8b (patch)
tree18052a8421331efe0ed325eb4d520d82e2cf1a9f
parentb8424eaf02409eab0e7421a8550f161cc90f88c8 (diff)
* array.c (flatten): free memo hash table before raising exception.
[ruby-dev:34789] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@16519 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
-rw-r--r--ChangeLog5
-rw-r--r--array.c1
2 files changed, 6 insertions, 0 deletions
diff --git a/ChangeLog b/ChangeLog
index 96352dd940..3d0c166fe2 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+Thu May 22 08:28:49 2008 Yukihiro Matsumoto <matz@ruby-lang.org>
+
+ * array.c (flatten): free memo hash table before raising exception.
+ [ruby-dev:34789]
+
Thu May 22 06:30:10 2008 Hidetoshi NAGAI <nagai@ai.kyutech.ac.jp>
* array.c (flatten): fix memory leak.
diff --git a/array.c b/array.c
index 0357e728f0..e3d92bac2d 100644
--- a/array.c
+++ b/array.c
@@ -3124,6 +3124,7 @@ flatten(ary, level, modified)
*modified = 1;
id = (st_data_t)tmp;
if (st_lookup(memo, id, 0)) {
+ st_free_table(memo);
rb_raise(rb_eArgError, "tried to flatten recursive array");
}
st_insert(memo, id, (st_data_t)Qtrue);