aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorktsj <ktsj@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2011-10-01 23:48:48 +0000
committerktsj <ktsj@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2011-10-01 23:48:48 +0000
commitbc07265ceb9ca1c2d9329e614240b6ada4ff2b5c (patch)
treea8546416a20c6fd71c5368c0e993990b2b68b821
parenta9dae873234dd4a4f71c32dd638dae95ceda017b (diff)
downloadruby-bc07265ceb9ca1c2d9329e614240b6ada4ff2b5c.tar.gz
* 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--ChangeLog6
-rw-r--r--cont.c2
-rw-r--r--vm.c1
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 <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.
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);