diff --git a/WheelTimer/Assignment/rt.h b/WheelTimer/Assignment/rt.h index 5c9a7fa..90027cc 100644 --- a/WheelTimer/Assignment/rt.h +++ b/WheelTimer/Assignment/rt.h @@ -97,6 +97,7 @@ rt_entry_remove(rt_table_t *rt_table, rt_entry->next = 0; return; } + rt_table->head = NULL; return; } if(!rt_entry->next){ diff --git a/WheelTimer/WheelTimer.c b/WheelTimer/WheelTimer.c index 7c54218..17992f0 100644 --- a/WheelTimer/WheelTimer.c +++ b/WheelTimer/WheelTimer.c @@ -204,8 +204,7 @@ register_app_event(wheel_timer_t *wt, wheel_timer_elem_t *wt_elem = calloc(1, sizeof(wheel_timer_elem_t)); wt_elem->app_callback = call_back; if(arg && arg_size){ - wt_elem->arg = calloc(1, arg_size); - memcpy(wt_elem->arg, arg, arg_size); + wt_elem->arg = arg; wt_elem->arg_size = arg_size; } wt_elem->is_recurrence = is_recursive; @@ -251,7 +250,6 @@ void free_wheel_timer_element(wheel_timer_elem_t *wt_elem){ wt_elem->slotlist_head = NULL; - free(wt_elem->arg); free(wt_elem); } diff --git a/WheelTimer/libtimer/Course/projects/rt.h b/WheelTimer/libtimer/Course/projects/rt.h index 39376eb..82cc457 100644 --- a/WheelTimer/libtimer/Course/projects/rt.h +++ b/WheelTimer/libtimer/Course/projects/rt.h @@ -98,6 +98,7 @@ rt_entry_remove(rt_table_t *rt_table, rt_entry->next = 0; return; } + rt_table->head = NULL; return; } if(!rt_entry->next){