提交 e80facfd 编写于 作者: F Frank Buss 提交者: mysterywolf

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
上级 6b60aab1
......@@ -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 */
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册