security/nss/lib/jar/jar-ds.h

Thu, 22 Jan 2015 13:21:57 +0100

author
Michael Schloh von Bennewitz <michael@schloh.com>
date
Thu, 22 Jan 2015 13:21:57 +0100
branch
TOR_BUG_9701
changeset 15
b8a032363ba2
permissions
-rw-r--r--

Incorporate requested changes from Mozilla in review:
https://bugzilla.mozilla.org/show_bug.cgi?id=1123480#c6

     1 /* This Source Code Form is subject to the terms of the Mozilla Public
     2  * License, v. 2.0. If a copy of the MPL was not distributed with this
     3  * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
     5 #ifndef __JAR_DS_h_
     6 #define __JAR_DS_h_
     8 /* Typedefs */
     9 typedef struct ZZLinkStr ZZLink;
    10 typedef struct ZZListStr ZZList;
    12 /*
    13 ** Circular linked list. Each link contains a pointer to the object that
    14 ** is actually in the list.
    15 */
    16 struct ZZLinkStr {
    17     ZZLink *next;
    18     ZZLink *prev;
    19     JAR_Item *thing;
    20 };
    22 struct ZZListStr {
    23     ZZLink link;
    24 };
    26 #define ZZ_InitList(lst)	 \
    27 { \
    28     (lst)->link.next = &(lst)->link; \
    29     (lst)->link.prev = &(lst)->link; \
    30     (lst)->link.thing = 0; \
    31 }
    33 #define ZZ_ListEmpty(lst) ((lst)->link.next == &(lst)->link)
    35 #define ZZ_ListHead(lst) ((lst)->link.next)
    37 #define ZZ_ListTail(lst) ((lst)->link.prev)
    39 #define ZZ_ListIterDone(lst,lnk) ((lnk) == &(lst)->link)
    41 #define ZZ_AppendLink(lst,lnk)	    \
    42 { \
    43     (lnk)->next = &(lst)->link; \
    44     (lnk)->prev = (lst)->link.prev; \
    45     (lst)->link.prev->next = (lnk); \
    46     (lst)->link.prev = (lnk); \
    47 }
    49 #define ZZ_InsertLink(lst,lnk)	    \
    50 { \
    51     (lnk)->next = (lst)->link.next; \
    52     (lnk)->prev = &(lst)->link; \
    53     (lst)->link.next->prev = (lnk); \
    54     (lst)->link.next = (lnk); \
    55 }
    57 #define ZZ_RemoveLink(lnk)	 \
    58 { \
    59     (lnk)->next->prev = (lnk)->prev; \
    60     (lnk)->prev->next = (lnk)->next; \
    61     (lnk)->next = 0; \
    62     (lnk)->prev = 0; \
    63 }
    65 extern ZZLink *
    66 ZZ_NewLink(JAR_Item *thing);
    68 extern void 
    69 ZZ_DestroyLink(ZZLink *link);
    71 extern ZZList *
    72 ZZ_NewList(void);
    74 extern void 
    75 ZZ_DestroyList(ZZList *list);
    78 #endif /* __JAR_DS_h_ */

mercurial