From 2bbf98e5ed7c0cb22edadbd90aa07988f607c3c7 Mon Sep 17 00:00:00 2001 From: liang yongxiang Date: Sat, 7 Jul 2018 13:57:36 +0800 Subject: [PATCH] [kernel] add assert to timer object --- src/timer.c | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/src/timer.c b/src/timer.c index d6cf486931..8354d43a43 100644 --- a/src/timer.c +++ b/src/timer.c @@ -207,6 +207,8 @@ rt_err_t rt_timer_detach(rt_timer_t timer) /* timer check */ RT_ASSERT(timer != RT_NULL); + RT_ASSERT(rt_object_get_type(&timer->parent) == RT_Object_Class_Timer); + RT_ASSERT(rt_object_is_systemobject(&timer->parent)); /* disable interrupt */ level = rt_hw_interrupt_disable(); @@ -268,6 +270,8 @@ rt_err_t rt_timer_delete(rt_timer_t timer) /* timer check */ RT_ASSERT(timer != RT_NULL); + RT_ASSERT(rt_object_get_type(&timer->parent) == RT_Object_Class_Timer); + RT_ASSERT(rt_object_is_systemobject(&timer->parent) == RT_FALSE); /* disable interrupt */ level = rt_hw_interrupt_disable(); @@ -302,6 +306,7 @@ rt_err_t rt_timer_start(rt_timer_t timer) /* timer check */ RT_ASSERT(timer != RT_NULL); + RT_ASSERT(rt_object_get_type(&timer->parent) == RT_Object_Class_Timer); /* stop timer firstly */ level = rt_hw_interrupt_disable(); @@ -422,6 +427,8 @@ rt_err_t rt_timer_stop(rt_timer_t timer) /* timer check */ RT_ASSERT(timer != RT_NULL); + RT_ASSERT(rt_object_get_type(&timer->parent) == RT_Object_Class_Timer); + if (!(timer->parent.flag & RT_TIMER_FLAG_ACTIVATED)) return -RT_ERROR; @@ -455,6 +462,7 @@ rt_err_t rt_timer_control(rt_timer_t timer, int cmd, void *arg) { /* timer check */ RT_ASSERT(timer != RT_NULL); + RT_ASSERT(rt_object_get_type(&timer->parent) == RT_Object_Class_Timer); switch (cmd) {