X-Git-Url: https://git.auder.net/?a=blobdiff_plain;f=src%2FQueue.c;h=b85cf39341b7a13f0c06802c444b3ad156c66737;hb=8306616e3ab3b2cbcbaf7dc70931d2ed394a1aa5;hp=47e7dd5d37648e9c53340039f235b836d26792e5;hpb=bbd242d4033c75c0b48b2c0b6b1fa5c59086954f;p=cgds.git diff --git a/src/Queue.c b/src/Queue.c index 47e7dd5..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; } @@ -48,12 +49,8 @@ void* _queue_peek(Queue* queue) 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); }