aboutsummaryrefslogtreecommitdiff
path: root/src/txtacc.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/txtacc.c')
-rw-r--r--src/txtacc.c12
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;
}

Return to:

Send suggestions and report system problems to the System administrator.