From 8e48b931091cbc99abeffacc7af80f363495ec23 Mon Sep 17 00:00:00 2001 From: Michael Drake Date: Sat, 14 Dec 2013 23:14:09 +0000 Subject: Remove client allocation function. --- src/utils/vector.c | 28 +++++++++------------------- 1 file changed, 9 insertions(+), 19 deletions(-) (limited to 'src/utils/vector.c') diff --git a/src/utils/vector.c b/src/utils/vector.c index ab895e3..15c948b 100644 --- a/src/utils/vector.c +++ b/src/utils/vector.c @@ -20,9 +20,6 @@ struct parserutils_vector size_t items_allocated; /**< Number of slots allocated */ int32_t current_item; /**< Index of current item */ void *items; /**< Items in vector */ - - parserutils_alloc alloc; /**< Memory (de)allocation function */ - void *pw; /**< Client-specific data */ }; /** @@ -30,30 +27,26 @@ struct parserutils_vector * * \param item_size Length, in bytes, of an item in the vector * \param chunk_size Number of vector slots in a chunk - * \param alloc Memory (de)allocation function - * \param pw Pointer to client-specific private data * \param vector Pointer to location to receive vector instance * \return PARSERUTILS_OK on success, * PARSERUTILS_BADPARM on bad parameters, * PARSERUTILS_NOMEM on memory exhaustion */ parserutils_error parserutils_vector_create(size_t item_size, - size_t chunk_size, parserutils_alloc alloc, void *pw, - parserutils_vector **vector) + size_t chunk_size, parserutils_vector **vector) { parserutils_vector *v; - if (item_size == 0 || chunk_size == 0 || alloc == NULL || - vector == NULL) + if (item_size == 0 || chunk_size == 0 || vector == NULL) return PARSERUTILS_BADPARM; - v = alloc(NULL, sizeof(parserutils_vector), pw); + v = malloc(sizeof(parserutils_vector)); if (v == NULL) return PARSERUTILS_NOMEM; - v->items = alloc(NULL, item_size * chunk_size, pw); + v->items = malloc(item_size * chunk_size); if (v->items == NULL) { - alloc(v, 0, pw); + free(v); return PARSERUTILS_NOMEM; } @@ -62,9 +55,6 @@ parserutils_error parserutils_vector_create(size_t item_size, v->items_allocated = chunk_size; v->current_item = -1; - v->alloc = alloc; - v->pw = pw; - *vector = v; return PARSERUTILS_OK; @@ -81,8 +71,8 @@ parserutils_error parserutils_vector_destroy(parserutils_vector *vector) if (vector == NULL) return PARSERUTILS_BADPARM; - vector->alloc(vector->items, 0, vector->pw); - vector->alloc(vector, 0, vector->pw); + free(vector->items); + free(vector); return PARSERUTILS_OK; } @@ -109,9 +99,9 @@ parserutils_error parserutils_vector_append(parserutils_vector *vector, slot = vector->current_item + 1; if ((size_t) slot >= vector->items_allocated) { - void *temp = vector->alloc(vector->items, + void *temp = realloc(vector->items, (vector->items_allocated + vector->chunk_size) * - vector->item_size, vector->pw); + vector->item_size); if (temp == NULL) return PARSERUTILS_NOMEM; -- cgit v1.2.3