summaryrefslogtreecommitdiff
path: root/eval.c
diff options
context:
space:
mode:
authornobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2011-02-11 10:45:34 +0000
committernobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2011-02-11 10:45:34 +0000
commit96c078c34029bbc525085c4072b7e1ebcc9ec5a3 (patch)
tree12d7aa3e5192ad8c8416ce85889aaaac5e71561e /eval.c
parent18364f541b83eddd3b35fa42077f58a8782369f0 (diff)
* eval.c (ruby_cleanup): use rb_ary_free to free internal object.
* gc.h (RUBY_FREE_UNLESS_NULL): get rid of double free. [ruby-core:35192] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@30840 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'eval.c')
-rw-r--r--eval.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/eval.c b/eval.c
index 5fe00e13e7..18ea100cc2 100644
--- a/eval.c
+++ b/eval.c
@@ -170,7 +170,7 @@ ruby_cleanup(volatile int ex)
for (i=RARRAY_LEN(ary) - 1; i>=0; i--) {
((void(*)(rb_vm_t*))RARRAY_PTR(ary)[i])(vm);
}
- rb_ary_clear(ary);
+ rb_ary_free(ary);
#if EXIT_SUCCESS != 0 || EXIT_FAILURE != 1
switch (ex) {