Jelajahi Sumber

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

Frank Buss 2 tahun lalu
induk
melakukan
e80facfd06
1 mengubah file dengan 5 tambahan dan 4 penghapusan
  1. 5 4
      src/object.c

+ 5 - 4
src/object.c

@@ -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 */