diff options
author | nobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2007-06-21 10:40:50 +0000 |
---|---|---|
committer | nobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2007-06-21 10:40:50 +0000 |
commit | 6bcfb2508a55364322217575a873dd2126f6f684 (patch) | |
tree | e2327574297f879ab45d4b0ef901084fcd516a99 | |
parent | de1f1c57921e7da8bb97b79f428797c6281b3e20 (diff) | |
download | ruby-6bcfb2508a55364322217575a873dd2126f6f684.tar.gz ruby-6bcfb2508a55364322217575a873dd2126f6f684.tar.xz ruby-6bcfb2508a55364322217575a873dd2126f6f684.zip |
* yarvcore.c (rb_thread_mark): mark also thrown_errinfo.
git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@12580 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
-rw-r--r-- | ChangeLog | 4 | ||||
-rw-r--r-- | yarvcore.c | 16 |
2 files changed, 10 insertions, 10 deletions
@@ -1,3 +1,7 @@ +Thu Jun 21 19:42:07 2007 Nobuyoshi Nakada <nobu@ruby-lang.org> + + * yarvcore.c (rb_thread_mark): mark also thrown_errinfo. + Thu Jun 21 17:13:44 2007 Nobuyoshi Nakada <nobu@ruby-lang.org> * parse.y (rb_intern2): name may not be NUL-terminated. diff --git a/yarvcore.c b/yarvcore.c index 9974b0858..0fe43a774 100644 --- a/yarvcore.c +++ b/yarvcore.c @@ -259,8 +259,8 @@ thread_free(void *ptr) void yarv_machine_stack_mark(rb_thread_t *th); -static void -thread_mark(void *ptr) +void +rb_thread_mark(void *ptr) { rb_thread_t *th = NULL; MARK_REPORT_ENTER("thread"); @@ -289,6 +289,7 @@ thread_mark(void *ptr) MARK_UNLESS_NULL(th->thgroup); MARK_UNLESS_NULL(th->value); MARK_UNLESS_NULL(th->errinfo); + MARK_UNLESS_NULL(th->thrown_errinfo); MARK_UNLESS_NULL(th->local_svar); MARK_UNLESS_NULL(th->top_self); MARK_UNLESS_NULL(th->top_wrapper); @@ -311,19 +312,13 @@ thread_mark(void *ptr) MARK_REPORT_LEAVE("thread"); } -void -rb_thread_mark(void *ptr) -{ - thread_mark(ptr); -} - static VALUE thread_alloc(VALUE klass) { VALUE volatile obj; rb_thread_t *th; obj = Data_Make_Struct(klass, rb_thread_t, - thread_mark, thread_free, th); + rb_thread_mark, thread_free, th); return obj; } @@ -551,7 +546,8 @@ Init_VM(void) vm->self = Data_Wrap_Struct(rb_cVM, vm_mark, vm_free, vm); /* create main thread */ - th_self = th->self = Data_Wrap_Struct(rb_cThread, thread_mark, thread_free, th); + th_self = th->self = Data_Wrap_Struct(rb_cThread, rb_thread_mark, + thread_free, th); vm->main_thread = th; vm->running_thread = th; |