summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog7
-rw-r--r--eval.c2
-rw-r--r--thread.c6
3 files changed, 11 insertions, 4 deletions
diff --git a/ChangeLog b/ChangeLog
index a80f1d4917..a47ded05b9 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,10 @@
+Thu Jun 5 23:25:34 2008 Yusuke Endoh <mame@tsg.ne.jp>
+
+ * eval.c (ruby_finalize_0): clear trace_func after executing END
+ procs.
+
+ * thread.c: fix typo.
+
Thu Jun 5 22:50:50 2008 Tanaka Akira <akr@fsij.org>
* gc.c (os_obj_of): heaps may be modified in yield.
diff --git a/eval.c b/eval.c
index 76b0f35cdc..7cd2a22404 100644
--- a/eval.c
+++ b/eval.c
@@ -115,13 +115,13 @@ ruby_options(int argc, char **argv)
static void
ruby_finalize_0(void)
{
- rb_clear_trace_func();
PUSH_TAG();
if (EXEC_TAG() == 0) {
rb_trap_exit();
}
POP_TAG();
rb_exec_end_proc();
+ rb_clear_trace_func();
}
static void
diff --git a/thread.c b/thread.c
index 5d933e4aef..87535c2226 100644
--- a/thread.c
+++ b/thread.c
@@ -2817,7 +2817,7 @@ rb_exec_recursive(VALUE (*func) (VALUE, VALUE, int), VALUE obj, VALUE arg)
/* tracer */
static rb_event_hook_t *
-alloc_event_fook(rb_event_hook_func_t func, rb_event_flag_t events, VALUE data)
+alloc_event_hook(rb_event_hook_func_t func, rb_event_flag_t events, VALUE data)
{
rb_event_hook_t *hook = ALLOC(rb_event_hook_t);
hook->func = func;
@@ -2842,7 +2842,7 @@ void
rb_thread_add_event_hook(rb_thread_t *th,
rb_event_hook_func_t func, rb_event_flag_t events, VALUE data)
{
- rb_event_hook_t *hook = alloc_event_fook(func, events, data);
+ rb_event_hook_t *hook = alloc_event_hook(func, events, data);
hook->next = th->event_hooks;
th->event_hooks = hook;
thread_reset_event_flags(th);
@@ -2873,7 +2873,7 @@ set_threads_event_flags(int flag)
void
rb_add_event_hook(rb_event_hook_func_t func, rb_event_flag_t events, VALUE data)
{
- rb_event_hook_t *hook = alloc_event_fook(func, events, data);
+ rb_event_hook_t *hook = alloc_event_hook(func, events, data);
rb_vm_t *vm = GET_VM();
hook->next = vm->event_hooks;