core/queue: Add queue_deinit()
To clean up a queue when we're done with it. Signed-off-by: Anna Schumaker <Anna@OcarinaProject.net>
This commit is contained in:
parent
5e8ce4de86
commit
cc164fc4ee
|
@ -86,6 +86,14 @@ void queue_init(struct queue *queue, unsigned int flags,
|
|||
_q_init(&queue->q_tracks);
|
||||
}
|
||||
|
||||
void queue_deinit(struct queue *queue)
|
||||
{
|
||||
_q_clear(&queue->q_tracks);
|
||||
g_slist_free(queue->q_sort);
|
||||
queue->q_sort = NULL;
|
||||
queue->q_length = 0;
|
||||
}
|
||||
|
||||
void queue_set_flag(struct queue *queue, enum queue_flags flag)
|
||||
{
|
||||
queue->q_flags |= flag;
|
||||
|
|
|
@ -55,6 +55,9 @@ struct queue {
|
|||
/* Called to initialize a queue. */
|
||||
void queue_init(struct queue *, unsigned int, const struct queue_ops *);
|
||||
|
||||
/* Called to deinitialize a queue. */
|
||||
void queue_deinit(struct queue *);
|
||||
|
||||
|
||||
/* Called to set a queue flag. */
|
||||
void queue_set_flag(struct queue *, enum queue_flags);
|
||||
|
|
|
@ -216,8 +216,10 @@ static void test_stress(unsigned int N)
|
|||
test_loop_equal(queue_size(&q), ex_size - (i + 1), i);
|
||||
} test_loop_passed();
|
||||
|
||||
test_equal(q.q_length, 0);
|
||||
test_equal(queue_size(&q), 0);
|
||||
queue_deinit(&q);
|
||||
test_equal(q.q_length, 0);
|
||||
test_equal(queue_size(&q), 0);
|
||||
test_equal((void *)q.q_sort, NULL);
|
||||
}
|
||||
|
||||
static void test_basics() { test_stress(13); }
|
||||
|
@ -295,6 +297,8 @@ static void test_rand_select()
|
|||
|
||||
/* q = { } */
|
||||
test_equal((void *)queue_next(&q), NULL);
|
||||
|
||||
queue_deinit(&q);
|
||||
}
|
||||
|
||||
static void test_sorting()
|
||||
|
@ -376,8 +380,10 @@ static void test_sorting()
|
|||
} test_loop_passed();
|
||||
test_equal(count_sort, 6);
|
||||
|
||||
g_queue_clear(&q.q_tracks._queue);
|
||||
g_slist_free(q.q_sort);
|
||||
queue_deinit(&q);
|
||||
test_equal(q.q_length, 0);
|
||||
test_equal(queue_size(&q), 0);
|
||||
test_equal((void *)q.q_sort, NULL);
|
||||
__test_deinit_core();
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue