diff options
| -rw-r--r-- | tree.c | 13 |
1 files changed, 8 insertions, 5 deletions
| @@ -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"); |
