diff options
-rw-r--r-- | ChangeLog | 6 | ||||
-rw-r--r-- | bootstraptest/test_knownbug.rb | 5 | ||||
-rw-r--r-- | cont.c | 3 |
3 files changed, 8 insertions, 6 deletions
@@ -1,3 +1,9 @@ +Sat Oct 6 16:24:02 2007 Koichi Sasada <ko1@atdot.net> + + * cont.c (cont_free): check Fiber or Continuation. + + * bootstraptest/test_knownbug.rb: remove a fixed test. + Sat Oct 6 14:56:02 2007 Nobuyoshi Nakada <nobu@ruby-lang.org> * encoding.c (rb_enc_register): returns new index or -1 if failed. diff --git a/bootstraptest/test_knownbug.rb b/bootstraptest/test_knownbug.rb index ba91d5ca9f..9c1602eb9d 100644 --- a/bootstraptest/test_knownbug.rb +++ b/bootstraptest/test_knownbug.rb @@ -17,11 +17,6 @@ assert_normal_exit %q{ Marshal.load(Marshal.dump({"k"=>"v"}), lambda {|v| }) } -assert_normal_exit %q{ - require 'continuation' - Fiber.new{ callcc{|c| @c = c } }.resume -}, '[ruby-dev:31913]' - assert_not_match /method_missing/, %q{ STDERR.reopen(STDOUT) variable_or_mehtod_not_exist @@ -86,7 +86,8 @@ cont_free(void *ptr) RUBY_FREE_UNLESS_NULL(cont->machine_register_stack); #endif RUBY_FREE_UNLESS_NULL(cont->vm_stack); - if (cont->saved_thread.local_storage) { + if (cont->vm_stack && cont->saved_thread.local_storage) { + /* fiber */ st_free_table(cont->saved_thread.local_storage); } ruby_xfree(ptr); |