示例#1
0
文件: queue.c 项目: vdt/libcore
/* Complexity: O(n) */
void queue_free_all(Queue *queue, FreeFn freefn)
{
    assert(queue != NULL);

    /* Free queue container, slist, and slist data  */
    slist_free_all((SList *)queue, freefn);
}
示例#2
0
文件: test-slist.c 项目: vdt/libcore
void slist_teardown(void)
{
    assert_true(test_slist != NULL);

    slist_free_all(test_slist, NULL);
    test_slist = NULL;
}
示例#3
0
文件: test-slist.c 项目: vdt/libcore
void test_slist_prepend_to_empty(void)
{
    unsigned long *val = NULL;

    assert_true(test_slist == NULL);

    test_slist = slist_create();

    assert_true(test_slist != NULL);
    assert_true(slist_is_empty(test_slist));

    val = make_ulong_ptr(9999);
    assert_true(val != NULL);

    assert_true(slist_prepend(test_slist, val) == 0);

    /* Verify */
    val = NULL;
    val = slist_index(test_slist, 0);
    assert_true(val != NULL);
    assert_ulong_equal(9999, *val);
    assert_true(slist_size(test_slist) == 1);

    slist_free_all(test_slist, NULL);
    test_slist = NULL;
}
示例#4
0
/**
 * Dispose of the header field.
 */
static void
hfield_free(header_field_t *h)
{
	header_field_check(h);

	slist_free_all(&h->lines, hfield_free_item);
	HFREE_NULL(h->name);
	h->magic = 0;
	WFREE(h);
}
示例#5
0
/**
 * Reset header object, for new header parsing.
 */
void
header_reset(header_t *o)
{
	header_check(o);

	if (o->headers != NULL) {
		htable_foreach_remove(o->headers, free_header_data, NULL);
		htable_free_null(&o->headers);
	}
	slist_free_all(&o->fields, cast_to_free_fn(hfield_free));
	o->flags = o->size = o->num_lines = 0;
}
示例#6
0
/**
 * Reset header object, for new header parsing.
 */
void
header_reset(header_t *o)
{
	header_check(o);

	if (o->headers) {
		g_hash_table_foreach_remove(o->headers, free_header_data, NULL);
		gm_hash_table_destroy_null(&o->headers);
	}
	slist_free_all(&o->fields, cast_to_slist_destroy(hfield_free));
	o->flags = o->size = o->num_lines = 0;
}
示例#7
0
文件: test-slist.c 项目: vdt/libcore
void test_slist_reverse_empty(void)
{
    assert_true(test_slist == NULL);

    test_slist = slist_create();

    assert_true(test_slist != NULL);
    assert_true(slist_is_empty(test_slist));

    assert_true(slist_reverse(test_slist) == 0);

    slist_free_all(test_slist, NULL);
    test_slist = NULL;
}
示例#8
0
文件: test-slist.c 项目: vdt/libcore
void test_slist_remove_data_from_empty(void)
{
    assert_true(test_slist == NULL);

    test_slist = slist_create();

    assert_true(test_slist != NULL);
    assert_true(slist_is_empty(test_slist));

    assert_true(slist_remove_data(test_slist, NULL) == -1);

    slist_free_all(test_slist, NULL);
    test_slist = NULL;
}
示例#9
0
/**
 * Free the pmsg list, including the list container, nullifying its pointer.
 */
void
pmsg_slist_free_all(slist_t **slist_ptr)
{
	slist_free_all(slist_ptr, cast_to_slist_destroy(pmsg_free));
}
示例#10
0
/**
 * Free the pmsg list, including the list container, nullifying its pointer.
 */
void
pmsg_slist_free_all(slist_t **slist_ptr)
{
	slist_free_all(slist_ptr, cast_to_free_fn(pmsg_free));
}