aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--tree.c13
1 files changed, 8 insertions, 5 deletions
diff --git a/tree.c b/tree.c
index 94355dc..b2515ca 100644
--- a/tree.c
+++ b/tree.c
@@ -352,14 +352,17 @@ queue_put(struct queue *queue, struct tree_node *data)
352 struct queue_item *new_item; 352 struct queue_item *new_item;
353 353
354 if ( (new_item = malloc(sizeof(*new_item))) != NULL ) { 354 if ( (new_item = malloc(sizeof(*new_item))) != NULL ) {
355 struct queue_item *tmp = queue->tail; 355 struct queue_item *tail;
356 new_item->data = data; 356
357 new_item->next = NULL; 357 tail = queue->tail;
358 queue->tail = new_item; 358 new_item->data = data;
359 new_item->next = NULL;
360 queue->tail = new_item;
361
359 if ( queue->head == NULL ) 362 if ( queue->head == NULL )
360 queue->head = queue->tail; 363 queue->head = queue->tail;
361 else 364 else
362 tmp->next = queue->tail; 365 tail->next = queue->tail;
363 } 366 }
364 else 367 else
365 ERROR("out of memory"); 368 ERROR("out of memory");