|
@@ -280,9 +280,9 @@ rt_inline int rt_slist_isempty(rt_slist_t *l)
|
|
|
* @param member the name of the list_struct within the struct.
|
|
|
*/
|
|
|
#define rt_slist_for_each_entry(pos, head, member) \
|
|
|
- for (pos = rt_slist_entry((head)->next, typeof(*pos), member); \
|
|
|
- &pos->member != (RT_NULL); \
|
|
|
- pos = rt_slist_entry(pos->member.next, typeof(*pos), member))
|
|
|
+ for (pos = ((head)->next == (RT_NULL) ? (RT_NULL) : rt_slist_entry((head)->next, typeof(*pos), member)); \
|
|
|
+ pos != (RT_NULL) && &pos->member != (RT_NULL); \
|
|
|
+ pos = (pos->member.next == (RT_NULL) ? (RT_NULL) : rt_slist_entry(pos->member.next, typeof(*pos), member)))
|
|
|
|
|
|
/**
|
|
|
* rt_slist_first_entry - get the first element from a slist
|