VirtualBox

Changeset 34406 in vbox for trunk/include/iprt


Ignore:
Timestamp:
Nov 26, 2010 4:45:34 PM (14 years ago)
Author:
vboxsync
svn:sync-xref-src-repo-rev:
68177
Message:

iprt/list.h: RTListNodeGetFirst/Last -> RTListGetFirst/Last; added RTListGetNext, RTListGetPrev, RTListNodeInsertAfter and RTListNodeInsertBefore.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/include/iprt/list.h

    r32445 r34406  
    9797
    9898/**
     99 * Inserts a node after the specified one.
     100 *
     101 * @param   pCurNode            The current node.
     102 * @param   pNewNode            The node to insert.
     103 */
     104DECLINLINE(void) RTListNodeInsertAfter(PRTLISTNODE pCurNode, PRTLISTNODE pNewNode)
     105{
     106    RTListPrepend(pCurNode, pNewNode);
     107}
     108
     109/**
     110 * Inserts a node before the specified one.
     111 *
     112 * @param   pCurNode            The current node.
     113 * @param   pNewNode            The node to insert.
     114 */
     115DECLINLINE(void) RTListNodeInsertBefore(PRTLISTNODE pCurNode, PRTLISTNODE pNewNode)
     116{
     117    RTListAppend(pCurNode, pNewNode);
     118}
     119
     120/**
    99121 * Remove a node from a list.
    100122 *
     
    197219 * @param   Member              The list node member.
    198220 */
    199 #define RTListNodeGetFirst(pList, Type, Member) \
     221#define RTListGetFirst(pList, Type, Member) \
    200222    (!RTListIsEmpty(pList) ? RTListNodeGetNext(pList, Type, Member) : NULL)
    201223
     
    210232 * @param   Member              The list node member.
    211233 */
    212 #define RTListNodeGetLast(pList, Type, Member) \
     234#define RTListGetLast(pList, Type, Member) \
    213235    (!RTListIsEmpty(pList) ? RTListNodeGetPrev(pList, Type, Member) : NULL)
     236
     237/**
     238 * Returns the next node in the list or NULL if the end has been reached.
     239 *
     240 * @returns The next node or NULL.
     241 *
     242 * @param   pList               The list @a pCurNode is linked on.
     243 * @param   pCurNode            The current node, of type @a Type.
     244 * @param   Type                Structure the list node is a member of.
     245 * @param   Member              The list node member.
     246 */
     247#define RTListGetNext(pList, pCurNode, Type, Member) \
     248    ( (pCurNode)->Member.pNext != (pList) ? RT_FROM_MEMBER((pCurNode)->Member.pNext, Type, Member) : NULL )
     249
     250/**
     251 * Returns the previous node in the list or NULL if the start has been reached.
     252 *
     253 * @returns The previous node or NULL.
     254 *
     255 * @param   pList               The list @a pCurNode is linked on.
     256 * @param   pCurNode            The current node, of type @a Type.
     257 * @param   Type                Structure the list node is a member of.
     258 * @param   Member              The list node member.
     259 */
     260#define RTListGetPrev(pList, pCurNode, Type, Member) \
     261    ( (pCurNode)->Member.pPrev != (pList) ? RT_FROM_MEMBER((pCurNode)->Member.pPrev, Type, Member) : NULL )
    214262
    215263/**
Note: See TracChangeset for help on using the changeset viewer.

© 2024 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette