diff options
Diffstat (limited to 'src/txtacc.c')
-rw-r--r-- | src/txtacc.c | 12 |
1 files changed, 7 insertions, 5 deletions
diff --git a/src/txtacc.c b/src/txtacc.c index 91659f6..442e27e 100644 --- a/src/txtacc.c +++ b/src/txtacc.c @@ -35,6 +35,6 @@ static struct txtacc_entry * txtacc_alloc_entry (struct grecs_list *list, size_t size) { - struct txtacc_entry *p = xmalloc (sizeof (*p)); - p->buf = xmalloc (size); + struct txtacc_entry *p = grecs_malloc (sizeof (*p)); + p->buf = grecs_malloc (size); p->size = size; p->len = 0; @@ -90,5 +90,5 @@ struct txtacc * txtacc_create () { - struct txtacc *acc = xmalloc (sizeof (*acc)); + struct txtacc *acc = grecs_malloc (sizeof (*acc)); acc->cur = grecs_list_create (); acc->cur->free_entry = txtacc_entry_free; @@ -138,4 +138,5 @@ txtacc_finish (struct txtacc *acc, int steal) acc->cur->head->data = NULL; txtacc_entry_tailor (txtent); + grecs_list_append (acc->mem, txtent); break; @@ -159,7 +160,8 @@ txtacc_finish (struct txtacc *acc, int steal) p = txtent->buf; if (steal) + { + grecs_list_remove_tail (acc->mem); free (txtent); - else - grecs_list_append (acc->mem, txtent); + } return p; } |