diff --git a/ChangeLog b/ChangeLog index 882bd5b282..761a9f120a 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,4 +1,7 @@ -Fri Nov 13 11:09:31 2009 Nobuyoshi Nakada +Fri Nov 13 16:22:00 2009 Nobuyoshi Nakada + + * thread.c (thread_start_func_2): see first_func, not first_proc, + to decide which to use. * gc.c (vm_xrealloc): use the given object space. diff --git a/thread.c b/thread.c index 5bca3e32af..ba717bd2a8 100644 --- a/thread.c +++ b/thread.c @@ -420,7 +420,7 @@ thread_start_func_2(rb_thread_t *th, VALUE *stack_start, VALUE *register_stack_s TH_PUSH_TAG(th); if ((state = EXEC_TAG()) == 0) { SAVE_ROOT_JMPBUF(th, { - if (th->first_proc) { + if (!th->first_func) { GetProcPtr(th->first_proc, proc); th->errinfo = Qnil; th->local_lfp = proc->block.lfp; @@ -429,7 +429,7 @@ thread_start_func_2(rb_thread_t *th, VALUE *stack_start, VALUE *register_stack_s (int)RARRAY_LEN(args), RARRAY_PTR(args), 0); } else { - th->value = (*th->first_func)((void *)th->first_args); + th->value = (*th->first_func)((void *)args); } }); }