Changeset 28435 in vbox
- Timestamp:
- Apr 17, 2010 9:39:53 PM (15 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/include/iprt/list.h
r26813 r28435 141 141 142 142 /** 143 * Checks if a type converted node is actually the dummy element (@a pList). 144 * 145 * @retval @c true if the node is the dummy element in the list. 146 * @retval @c false otherwise. 147 * 148 * @param pList The list. 149 * @param pNodeStruct The node structure to check. Typically 150 * something obtained from RTListNodeGetNext() or 151 * RTListNodeGetPrev(). This is NOT a PRTLISTNODE 152 * but something that contains a RTLISTNODE member! 153 * @param Type Structure the list node is a member of. 154 * @param Member The list node member. 155 */ 156 #define RTListNodeIsDummy(pList, pNode, Type, Member) \ 157 ( (pNode) != RT_FROM_MEMBER((pList), Type, Member) ) 158 159 /** 143 160 * Checks if a list is empty. 144 161 * … … 199 216 #define RTListNodeGetLast(pList, Type, Member) \ 200 217 (!RTListIsEmpty(pList) ? RTListNodeGetPrev(pList, Type, Member) : NULL) 218 219 /** 220 * Enumerate the list in head to tail order. 221 * 222 * @param pList List to enumerate. 223 * @param pIterator The iterator variable name. 224 * @param Type Structure the list node is a member of. 225 * @param Member The list node member name. 226 */ 227 #define RTListForEach(pList, pIterator, Type, Member) \ 228 for (pIterator = RTListNodeGetNext(pList, Type, Member); \ 229 !RTListNodeIsDummy(pList, pIterator, Type, Member); \ 230 pIterator = RT_FROM_MEMBER((pIterator)->Member.pNext, Type, Member) ) 231 201 232 202 233 /**
Note:
See TracChangeset
for help on using the changeset viewer.