From bc07265ceb9ca1c2d9329e614240b6ada4ff2b5c Mon Sep 17 00:00:00 2001 From: ktsj Date: Sat, 1 Oct 2011 23:48:48 +0000 Subject: [PATCH] * 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 --- ChangeLog | 6 ++++++ cont.c | 2 +- vm.c | 1 - 3 files changed, 7 insertions(+), 2 deletions(-) diff --git a/ChangeLog b/ChangeLog index 53f0269cca..be69505431 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,9 @@ +Sun Oct 2 08:43:25 2011 Kazuki Tsujimoto + + * 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 * vm.c (rb_thread_mark): rb_thread_t needs self to be marked. diff --git a/cont.c b/cont.c index 3e68d897ca..bbcf2e184c 100644 --- a/cont.c +++ b/cont.c @@ -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 diff --git a/vm.c b/vm.c index 2ab2b92fcc..665351be0a 100644 --- a/vm.c +++ b/vm.c @@ -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);