Browse Source

fix module unload issue

git-svn-id: https://rt-thread.googlecode.com/svn/trunk@2000 bbd45198-f89e-11dd-88c7-29a3b14d5316
qiuyiuestc@gmail.com 13 years ago
parent
commit
b36c286036
1 changed files with 5 additions and 2 deletions
  1. 5 2
      src/module.c

+ 5 - 2
src/module.c

@@ -911,7 +911,7 @@ rt_err_t rt_module_unload(rt_module_t module)
 	rt_kprintf("rt_module_unload: %s\n", module->parent.name);
 
 	/* module has entry point */
-	if ((module->parent.flag & RT_MODULE_FLAG_WITHOUTENTRY) != RT_MODULE_FLAG_WITHOUTENTRY)
+	if (!(module->parent.flag & RT_MODULE_FLAG_WITHOUTENTRY))
 	{
 		/* suspend module main thread */
 		if (module->module_thread != RT_NULL)
@@ -1109,7 +1109,10 @@ rt_err_t rt_module_unload(rt_module_t module)
 	}
 #endif
 
-	rt_free(module->page_array);
+#ifdef RT_USING_SLAB
+	if(module->page_array != RT_NULL) 
+		rt_free(module->page_array);
+#endif
 
 	/* delete module object */
 	rt_object_delete((rt_object_t)module);