X-Git-Url: https://git.auder.net/img/rock_paper_scissors_lizard_spock.gif?a=blobdiff_plain;f=src%2FQueue.c;h=b85cf39341b7a13f0c06802c444b3ad156c66737;hb=8306616e3ab3b2cbcbaf7dc70931d2ed394a1aa5;hp=7921f29b65759336b3cace8daff8eb8593d2716d;hpb=012c97ddf103ecd983df2520f87ca0c31010f9f2;p=cgds.git diff --git a/src/Queue.c b/src/Queue.c index 7921f29..b85cf39 100644 --- a/src/Queue.c +++ b/src/Queue.c @@ -13,6 +13,7 @@ void _queue_init(Queue* queue, size_t dataSize) Queue* _queue_new(size_t dataSize) { Queue* queue = (Queue*) safe_malloc(sizeof (Queue)); + queue->array = _vector_new(dataSize); _queue_init(queue, dataSize); return queue; } @@ -43,17 +44,13 @@ void _queue_push(Queue* queue, void* data) void* _queue_peek(Queue* queue) { - return vector_get(queue->array, 0); + return _vector_get(queue->array, 0); } void queue_pop(Queue* queue) { - //remove first vector element and shift its internal array - safe_free(queue->array->datas[0]); - queue->array->datas++; - //NOTE: we remove first element, so capacity decrease too - queue->array->size--; - queue->array->capacity--; + vector_pop_first(queue->array); + } void queue_clear(Queue* queue) @@ -63,6 +60,6 @@ void queue_clear(Queue* queue) void queue_destroy(Queue* queue) { - queue_clear(queue); + vector_destroy(queue->array); safe_free(queue); }