summaryrefslogtreecommitdiff
path: root/array.c
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 /array.c
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
Diffstat (limited to 'array.c')
-rw-r--r--array.c1
1 files changed, 1 insertions, 0 deletions
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);