remove unused code to improve speed
The RT_ASSERT(obj != object) line is only compiled for debug mode. But the rt_enter/exit_critical causes the compiler not to optimize at least these 2 calls, even if it could optimize out the whole loop, because the rt_list_entry function has no side effect, and RT_ASSET is a no-operation in release mode. So this patch fixes this: - no warnings anymore - better speed in release mode
This commit is contained in:
parent
6b60aab136
commit
e80facfd06
|
@ -331,7 +331,9 @@ void rt_object_init(struct rt_object *object,
|
|||
const char *name)
|
||||
{
|
||||
rt_base_t level;
|
||||
#ifdef RT_DEBUG
|
||||
struct rt_list_node *node = RT_NULL;
|
||||
#endif
|
||||
struct rt_object_information *information;
|
||||
#ifdef RT_USING_MODULE
|
||||
struct rt_dlmodule *module = dlmodule_self();
|
||||
|
@ -341,6 +343,7 @@ void rt_object_init(struct rt_object *object,
|
|||
information = rt_object_get_information(type);
|
||||
RT_ASSERT(information != RT_NULL);
|
||||
|
||||
#ifdef RT_DEBUG
|
||||
/* check object type to avoid re-initialization */
|
||||
|
||||
/* enter critical */
|
||||
|
@ -353,13 +356,11 @@ void rt_object_init(struct rt_object *object,
|
|||
struct rt_object *obj;
|
||||
|
||||
obj = rt_list_entry(node, struct rt_object, list);
|
||||
if (obj) /* skip warning when disable debug */
|
||||
{
|
||||
RT_ASSERT(obj != object);
|
||||
}
|
||||
RT_ASSERT(obj != object);
|
||||
}
|
||||
/* leave critical */
|
||||
rt_exit_critical();
|
||||
#endif
|
||||
|
||||
/* initialize object's parameters */
|
||||
/* set object type to static */
|
||||
|
|
Loading…
Reference in New Issue