diff options
author | ktsj <ktsj@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2011-10-01 23:48:48 +0000 |
---|---|---|
committer | ktsj <ktsj@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2011-10-01 23:48:48 +0000 |
commit | bc07265ceb9ca1c2d9329e614240b6ada4ff2b5c (patch) | |
tree | a8546416a20c6fd71c5368c0e993990b2b68b821 | |
parent | a9dae873234dd4a4f71c32dd638dae95ceda017b (diff) |
* vm.c (rb_thread_mark), cont.c (cont_mark): self pointer should not
be marked by itself. Patch by Koichi Sasada.
[ruby-dev:44567] [Bug #5386]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@33371 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
-rw-r--r-- | ChangeLog | 6 | ||||
-rw-r--r-- | cont.c | 2 | ||||
-rw-r--r-- | vm.c | 1 |
3 files changed, 7 insertions, 2 deletions
@@ -1,3 +1,9 @@ +Sun Oct 2 08:43:25 2011 Kazuki Tsujimoto <kazuki@callcc.net> + + * vm.c (rb_thread_mark), cont.c (cont_mark): self pointer should not + be marked by itself. Patch by Koichi Sasada. + [ruby-dev:44567] [Bug #5386] + Sun Oct 2 00:42:14 2011 Kazuki Tsujimoto <kazuki@callcc.net> * vm.c (rb_thread_mark): rb_thread_t needs self to be marked. @@ -138,7 +138,7 @@ cont_mark(void *ptr) if (ptr) { rb_context_t *cont = ptr; rb_gc_mark(cont->value); - rb_thread_mark(&cont->saved_thread); + rb_gc_mark(cont->saved_thread.self); if (cont->vm_stack) { #ifdef CAPTURE_JUST_VALID_VM_STACK @@ -1735,7 +1735,6 @@ rb_thread_mark(void *ptr) RUBY_MARK_UNLESS_NULL(th->first_proc); if (th->first_proc) RUBY_MARK_UNLESS_NULL(th->first_args); - RUBY_MARK_UNLESS_NULL(th->self); RUBY_MARK_UNLESS_NULL(th->thgroup); RUBY_MARK_UNLESS_NULL(th->value); RUBY_MARK_UNLESS_NULL(th->errinfo); |