/** * Frees a linked list. */ void ll_free(LL * list) { LLIter i; /* free all nodes */ ll_iter_get(&i, list); while(ll_iter_has_next(&i)) { ll_iter_remove(&i); } /* free list container */ free(list); }
void gbox_remove_cards_without_goodsids(LLIST *card_list) { if(card_list) { LL_ITER it = ll_iter_create(card_list); struct gbox_card *card; while((card = ll_iter_next(&it))) { if(ll_count(card->goodsids) == 0) { ll_iter_remove(&it); gbox_free_card(card); } else { ll_destroy_data_NULL(card->badsids); } } } return; }