aheinecke@404: /* Copyright (C) 2014 by Bundesamt für Sicherheit in der Informationstechnik aheinecke@404: * Software engineering by Intevation GmbH aheinecke@404: * aheinecke@404: * This file is Free Software under the GNU GPL (v>=2) aheinecke@404: * and comes with ABSOLUTELY NO WARRANTY! aheinecke@404: * See LICENSE.txt for details. aheinecke@404: */ wilde@242: #include "nss-secitemlist.h" wilde@242: wilde@242: void wilde@242: seciteml_push (seciteml_t **list, SECItem *item) wilde@242: { wilde@242: seciteml_t *newlelt; wilde@242: SECItem *newitem; wilde@242: newlelt = (seciteml_t *)xmalloc( sizeof(seciteml_t) ); wilde@242: newitem = (SECItem *)xmalloc( sizeof(SECItem) ); wilde@242: memcpy(newitem, item, sizeof(SECItem)); wilde@242: newlelt->item = newitem; wilde@242: newlelt->next = *list; wilde@242: *list = newlelt; wilde@242: } wilde@242: aheinecke@493: void aheinecke@493: seciteml_free (seciteml_t **list) aheinecke@493: { aheinecke@493: seciteml_t *oldlelt; aheinecke@493: aheinecke@493: while (*list != NULL) aheinecke@493: { aheinecke@493: oldlelt = *list; aheinecke@493: *list = oldlelt->next; andre@946: if (oldlelt->item->data) andre@946: free(oldlelt->item->data); aheinecke@493: free(oldlelt->item); aheinecke@493: free(oldlelt); aheinecke@493: } aheinecke@493: } aheinecke@493: wilde@242: SECItem *seciteml_pop (seciteml_t **list) wilde@242: { wilde@242: seciteml_t *oldlelt; wilde@242: SECItem *item = NULL; andre@904: wilde@242: if (*list != NULL) wilde@242: { wilde@242: oldlelt = *list; wilde@242: item = oldlelt->item; wilde@242: *list = oldlelt->next; wilde@318: free(oldlelt); wilde@242: } wilde@242: return(item); wilde@242: }