summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog5
-rw-r--r--thread.c4
2 files changed, 6 insertions, 3 deletions
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 <nobu@ruby-lang.org>
+Fri Nov 13 16:22:00 2009 Nobuyoshi Nakada <nobu@ruby-lang.org>
+
+ * 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);
}
});
}