diff --git a/src/std/queue.c b/src/std/queue.c index 1c1e10d..6e8c71b 100644 --- a/src/std/queue.c +++ b/src/std/queue.c @@ -38,9 +38,20 @@ void ARC_Queue_Push(ARC_Queue *queue, void *data){ return; } + if(queue->currentSize == 0){ + ARC_QueueNode *node = (ARC_QueueNode *)malloc(sizeof(ARC_QueueNode)); + node->data = data; + node->next = NULL; + + queue->node = node; + queue->currentSize++; + + return; + } + ARC_QueueNode *end = queue->node; for(uint32_t i = 0; i < queue->currentSize; i++){ - if(end == NULL){ + if(end->next == NULL){ arc_errno = ARC_ERRNO_NULL; ARC_DEBUG_ERR("ARC_Queue_Push(queue), when getting end node encountered a NULL node"); return;