diff options
author | matz <matz@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2004-10-29 07:59:42 +0000 |
---|---|---|
committer | matz <matz@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2004-10-29 07:59:42 +0000 |
commit | c579593b413ce455b4a1f8ee17005d7a5038102f (patch) | |
tree | 33e68bbb04522f237153a0af10174501c20d9364 | |
parent | ed4de45783e11a2f852e58a074e860720ae471d1 (diff) | |
download | ruby-c579593b413ce455b4a1f8ee17005d7a5038102f.tar.gz |
* eval.c (rb_thread_start_0): forget to free some memory chunks.
[ruby-core:03611]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@7134 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
-rw-r--r-- | ChangeLog | 3 | ||||
-rw-r--r-- | eval.c | 9 |
2 files changed, 5 insertions, 7 deletions
@@ -1,5 +1,8 @@ Fri Oct 29 10:00:30 2004 Yukihiro Matsumoto <matz@ruby-lang.org> + * eval.c (rb_thread_start_0): forget to free some memory chunks. + [ruby-core:03611] + * eval.c (ruby_cleanup): ruby_finalize_1 may cause exception, should be wrapped by PUSH_TAG/POP_TAG(). [ruby-dev:24627] @@ -11385,13 +11385,8 @@ rb_thread_start_0(fn, arg, th) if (th == main_thread) ruby_stop(state); rb_thread_remove(th); - for (block = saved_block; block;) { - struct BLOCK *tmp = block; - - if (tmp->frame.argc > 0) - free(tmp->frame.argv); - block = tmp->prev; - free((void*)tmp); + if (saved_block) { + blk_free(saved_block); } if (state && status != THREAD_TO_KILL && !NIL_P(ruby_errinfo)) { |