summaryrefslogtreecommitdiff
path: root/src/utils/vector.c
diff options
context:
space:
mode:
authorMichael Drake <tlsa@netsurf-browser.org>2013-12-14 23:14:09 +0000
committerMichael Drake <tlsa@netsurf-browser.org>2013-12-14 23:14:09 +0000
commit8e48b931091cbc99abeffacc7af80f363495ec23 (patch)
tree8aec6c47ec54e425884f646b08a9e28b216b3ebe /src/utils/vector.c
parenta4e3ccd6abb97d05121635112bdca44fc0e440b0 (diff)
downloadlibparserutils-8e48b931091cbc99abeffacc7af80f363495ec23.tar.gz
libparserutils-8e48b931091cbc99abeffacc7af80f363495ec23.tar.bz2
Remove client allocation function.
Diffstat (limited to 'src/utils/vector.c')
-rw-r--r--src/utils/vector.c28
1 files changed, 9 insertions, 19 deletions
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;