Example #1
0
void list_destroy(list_t * new_list)
{
    list_node_t *iter = NULL;
    list_node_t *next = NULL;

    return_if_fail(new_list != NULL);

    dlist_lock(new_list);

    iter = new_list->head.next;
    while (iter != &new_list->head) {
        next = iter->next;
        list_destroy_node(new_list, iter);
        iter = next;
    }

    new_list->head.next = &new_list->head;
    new_list->head.prev = &new_list->head;
    dlist_destroy_locker(new_list);

    SAFE_FREE(new_list);
    return;
}
Example #2
0
void dlist_destroy(DList* thiz)
{
	DListNode* iter = NULL;
	DListNode* next = NULL;
	
	return_if_fail(thiz != NULL);

	dlist_lock(thiz);

	iter = thiz->first;
	while(iter != NULL)
	{
		next = iter->next;
		dlist_destroy_node(thiz, iter);
		iter = next;
	}

	thiz->first = NULL;
	dlist_destroy_locker(thiz);
	
	SAFE_FREE(thiz);

	return;
}