|
|
/* $Id$ */
|
|
|
|
|
|
#include "stdafx.h"
|
|
|
#include "openttd.h"
|
|
|
#include "queue.h"
|
|
|
|
|
|
static void Stack_Clear(Queue* q, bool free_values)
|
|
|
{
|
|
|
uint i;
|
|
|
if (free_values)
|
|
|
for (i=0;i<q->data.stack.size;i++)
|
|
|
free(q->data.stack.elements[i]);
|
|
|
q->data.stack.size = 0;
|
|
|
}
|
|
|
|
|
|
static void Stack_Free(Queue* q, bool free_values)
|
|
|
{
|
|
|
q->clear(q, free_values);
|
|
|
free(q->data.stack.elements);
|
|
|
if (q->freeq)
|
|
|
free(q);
|
|
|
}
|
|
|
|
|
|
static bool Stack_Push(Queue* q, void* item, int priority)
|
|
|
{
|
|
|
if (q->data.stack.size == q->data.stack.max_size)
|