diff options
-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)) { |