Simplify handling of free chunks.

This commit is contained in:
Martin Mares 1999-10-29 10:08:27 +00:00
parent 54165b1315
commit 92af6f309b

View file

@ -73,9 +73,12 @@ lp_alloc(linpool *m, unsigned size)
} }
else else
{ {
if (m->current && m->current->next) if (m->current)
/* Still have free chunks from previous incarnation (before lp_flush()) */ {
c = m->current->next; /* Still have free chunks from previous incarnation (before lp_flush()) */
c = m->current;
m->current = c->next;
}
else else
{ {
/* Need to allocate a new chunk */ /* Need to allocate a new chunk */
@ -85,7 +88,6 @@ lp_alloc(linpool *m, unsigned size)
m->plast = &c->next; m->plast = &c->next;
c->next = NULL; c->next = NULL;
} }
m->current = c;
m->ptr = c->data + size; m->ptr = c->data + size;
m->end = c->data + m->chunk_size; m->end = c->data + m->chunk_size;
} }