summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorMichael Drake <tlsa@netsurf-browser.org>2013-12-14 23:15:34 +0000
committerMichael Drake <tlsa@netsurf-browser.org>2013-12-14 23:15:34 +0000
commit528795a5daf767532a42b492db29deeadebcb249 (patch)
tree06b6fba37d2a740341139131cfbd47eb0b59ab7f /src
parentd509919a3bc507f3898e2166978462badbaab599 (diff)
downloadlibhubbub-528795a5daf767532a42b492db29deeadebcb249.tar.gz
libhubbub-528795a5daf767532a42b492db29deeadebcb249.tar.bz2
Remove client allocation function and update for new lpu API.
Diffstat (limited to 'src')
-rw-r--r--src/parser.c28
-rw-r--r--src/tokeniser/tokeniser.c36
-rw-r--r--src/tokeniser/tokeniser.h1
-rw-r--r--src/treebuilder/in_body.c22
-rw-r--r--src/treebuilder/internal.h3
-rw-r--r--src/treebuilder/treebuilder.c41
-rw-r--r--src/treebuilder/treebuilder.h1
7 files changed, 47 insertions, 85 deletions
diff --git a/src/parser.c b/src/parser.c
index 5423922..671e129 100644
--- a/src/parser.c
+++ b/src/parser.c
@@ -25,9 +25,6 @@ struct hubbub_parser {
parserutils_inputstream *stream; /**< Input stream instance */
hubbub_tokeniser *tok; /**< Tokeniser instance */
hubbub_treebuilder *tb; /**< Treebuilder instance */
-
- hubbub_allocator_fn alloc; /**< Memory (de)allocation function */
- void *pw; /**< Client data */
};
/**
@@ -35,8 +32,6 @@ struct hubbub_parser {
*
* \param enc Source document encoding, or NULL to autodetect
* \param fix_enc Permit fixing up of encoding if it's frequently misused
- * \param alloc Memory (de)allocation function
- * \param pw Pointer to client-specific private data (may be NULL)
* \param parser Pointer to location to receive parser instance
* \return HUBBUB_OK on success,
* HUBBUB_BADPARM on bad parameters,
@@ -44,16 +39,16 @@ struct hubbub_parser {
* HUBBUB_BADENCODING if ::enc is unsupported
*/
hubbub_error hubbub_parser_create(const char *enc, bool fix_enc,
- hubbub_allocator_fn alloc, void *pw, hubbub_parser **parser)
+ hubbub_parser **parser)
{
parserutils_error perror;
hubbub_error error;
hubbub_parser *p;
- if (alloc == NULL || parser == NULL)
+ if (parser == NULL)
return HUBBUB_BADPARM;
- p = alloc(NULL, sizeof(hubbub_parser), pw);
+ p = malloc(sizeof(hubbub_parser));
if (p == NULL)
return HUBBUB_NOMEM;
@@ -72,30 +67,27 @@ hubbub_error hubbub_parser_create(const char *enc, bool fix_enc,
perror = parserutils_inputstream_create(enc,
enc != NULL ? HUBBUB_CHARSET_CONFIDENT : HUBBUB_CHARSET_UNKNOWN,
- hubbub_charset_extract, alloc, pw, &p->stream);
+ hubbub_charset_extract, &p->stream);
if (perror != PARSERUTILS_OK) {
- alloc(p, 0, pw);
+ free(p);
return hubbub_error_from_parserutils_error(perror);
}
- error = hubbub_tokeniser_create(p->stream, alloc, pw, &p->tok);
+ error = hubbub_tokeniser_create(p->stream, &p->tok);
if (error != HUBBUB_OK) {
parserutils_inputstream_destroy(p->stream);
- alloc(p, 0, pw);
+ free(p);
return error;
}
- error = hubbub_treebuilder_create(p->tok, alloc, pw, &p->tb);
+ error = hubbub_treebuilder_create(p->tok, &p->tb);
if (error != HUBBUB_OK) {
hubbub_tokeniser_destroy(p->tok);
parserutils_inputstream_destroy(p->stream);
- alloc(p, 0, pw);
+ free(p);
return error;
}
- p->alloc = alloc;
- p->pw = pw;
-
*parser = p;
return HUBBUB_OK;
@@ -118,7 +110,7 @@ hubbub_error hubbub_parser_destroy(hubbub_parser *parser)
parserutils_inputstream_destroy(parser->stream);
- parser->alloc(parser, 0, parser->pw);
+ free(parser);
return HUBBUB_OK;
}
diff --git a/src/tokeniser/tokeniser.c b/src/tokeniser/tokeniser.c
index 2fff50d..a7e67a1 100644
--- a/src/tokeniser/tokeniser.c
+++ b/src/tokeniser/tokeniser.c
@@ -181,9 +181,6 @@ struct hubbub_tokeniser {
hubbub_error_handler error_handler; /**< Error handling callback */
void *error_pw; /**< Error handler data */
-
- hubbub_allocator_fn alloc; /**< Memory (de)allocation function */
- void *alloc_pw; /**< Client private data */
};
static hubbub_error hubbub_tokeniser_handle_data(hubbub_tokeniser *tokeniser);
@@ -280,37 +277,34 @@ static hubbub_error hubbub_tokeniser_emit_token(hubbub_tokeniser *tokeniser,
* Create a hubbub tokeniser
*
* \param input Input stream instance
- * \param alloc Memory (de)allocation function
- * \param pw Pointer to client-specific private data (may be NULL)
* \param tokeniser Pointer to location to receive tokeniser instance
* \return HUBBUB_OK on success,
* HUBBUB_BADPARM on bad parameters,
* HUBBUB_NOMEM on memory exhaustion
*/
hubbub_error hubbub_tokeniser_create(parserutils_inputstream *input,
- hubbub_allocator_fn alloc, void *pw,
hubbub_tokeniser **tokeniser)
{
parserutils_error perror;
hubbub_tokeniser *tok;
- if (input == NULL || alloc == NULL || tokeniser == NULL)
+ if (input == NULL || tokeniser == NULL)
return HUBBUB_BADPARM;
- tok = alloc(NULL, sizeof(hubbub_tokeniser), pw);
+ tok = malloc(sizeof(hubbub_tokeniser));
if (tok == NULL)
return HUBBUB_NOMEM;
- perror = parserutils_buffer_create(alloc, pw, &tok->buffer);
+ perror = parserutils_buffer_create(&tok->buffer);
if (perror != PARSERUTILS_OK) {
- alloc(tok, 0, pw);
+ free(tok);
return hubbub_error_from_parserutils_error(perror);
}
- perror = parserutils_buffer_create(alloc, pw, &tok->insert_buf);
+ perror = parserutils_buffer_create(&tok->insert_buf);
if (perror != PARSERUTILS_OK) {
parserutils_buffer_destroy(tok->buffer);
- alloc(tok, 0, pw);
+ free(tok);
return hubbub_error_from_parserutils_error(perror);
}
@@ -330,9 +324,6 @@ hubbub_error hubbub_tokeniser_create(parserutils_inputstream *input,
tok->error_handler = NULL;
tok->error_pw = NULL;
- tok->alloc = alloc;
- tok->alloc_pw = pw;
-
memset(&tok->context, 0, sizeof(hubbub_tokeniser_context));
*tokeniser = tok;
@@ -352,15 +343,14 @@ hubbub_error hubbub_tokeniser_destroy(hubbub_tokeniser *tokeniser)
return HUBBUB_BADPARM;
if (tokeniser->context.current_tag.attributes != NULL) {
- tokeniser->alloc(tokeniser->context.current_tag.attributes,
- 0, tokeniser->alloc_pw);
+ free(tokeniser->context.current_tag.attributes);
}
parserutils_buffer_destroy(tokeniser->insert_buf);
parserutils_buffer_destroy(tokeniser->buffer);
- tokeniser->alloc(tokeniser, 0, tokeniser->alloc_pw);
+ free(tokeniser);
return HUBBUB_OK;
}
@@ -1202,10 +1192,9 @@ hubbub_error hubbub_tokeniser_handle_before_attribute_name(
/** \todo parse error */
}
- attr = tokeniser->alloc(ctag->attributes,
+ attr = realloc(ctag->attributes,
(ctag->n_attributes + 1) *
- sizeof(hubbub_attribute),
- tokeniser->alloc_pw);
+ sizeof(hubbub_attribute));
if (attr == NULL)
return HUBBUB_NOMEM;
@@ -1334,10 +1323,9 @@ hubbub_error hubbub_tokeniser_handle_after_attribute_name(
/** \todo parse error */
}
- attr = tokeniser->alloc(ctag->attributes,
+ attr = realloc(ctag->attributes,
(ctag->n_attributes + 1) *
- sizeof(hubbub_attribute),
- tokeniser->alloc_pw);
+ sizeof(hubbub_attribute));
if (attr == NULL)
return HUBBUB_NOMEM;
diff --git a/src/tokeniser/tokeniser.h b/src/tokeniser/tokeniser.h
index ed46d60..5700923 100644
--- a/src/tokeniser/tokeniser.h
+++ b/src/tokeniser/tokeniser.h
@@ -55,7 +55,6 @@ typedef union hubbub_tokeniser_optparams {
/* Create a hubbub tokeniser */
hubbub_error hubbub_tokeniser_create(parserutils_inputstream *input,
- hubbub_allocator_fn alloc, void *pw,
hubbub_tokeniser **tokeniser);
/* Destroy a hubbub tokeniser */
hubbub_error hubbub_tokeniser_destroy(hubbub_tokeniser *tokeniser);
diff --git a/src/treebuilder/in_body.c b/src/treebuilder/in_body.c
index e736d51..5157e66 100644
--- a/src/treebuilder/in_body.c
+++ b/src/treebuilder/in_body.c
@@ -1162,10 +1162,8 @@ hubbub_error process_isindex_in_body(hubbub_treebuilder *treebuilder,
/* First up, clone the token's attributes */
if (token->data.tag.n_attributes > 0) {
uint32_t i;
- attrs = treebuilder->alloc(NULL,
- (token->data.tag.n_attributes + 1) *
- sizeof(hubbub_attribute),
- treebuilder->alloc_pw);
+ attrs = malloc((token->data.tag.n_attributes + 1) *
+ sizeof(hubbub_attribute));
if (attrs == NULL)
return HUBBUB_NOMEM;
@@ -1209,7 +1207,7 @@ hubbub_error process_isindex_in_body(hubbub_treebuilder *treebuilder,
err = process_form_in_body(treebuilder, &dummy);
if (err != HUBBUB_OK) {
- treebuilder->alloc(attrs, 0, treebuilder->alloc_pw);
+ free(attrs);
return err;
}
@@ -1221,7 +1219,7 @@ hubbub_error process_isindex_in_body(hubbub_treebuilder *treebuilder,
err = process_hr_in_body(treebuilder, &dummy);
if (err != HUBBUB_OK) {
- treebuilder->alloc(attrs, 0, treebuilder->alloc_pw);
+ free(attrs);
return err;
}
@@ -1233,7 +1231,7 @@ hubbub_error process_isindex_in_body(hubbub_treebuilder *treebuilder,
err = process_container_in_body(treebuilder, &dummy);
if (err != HUBBUB_OK) {
- treebuilder->alloc(attrs, 0, treebuilder->alloc_pw);
+ free(attrs);
return err;
}
@@ -1245,7 +1243,7 @@ hubbub_error process_isindex_in_body(hubbub_treebuilder *treebuilder,
err = process_phrasing_in_body(treebuilder, &dummy);
if (err != HUBBUB_OK) {
- treebuilder->alloc(attrs, 0, treebuilder->alloc_pw);
+ free(attrs);
return err;
}
@@ -1263,7 +1261,7 @@ hubbub_error process_isindex_in_body(hubbub_treebuilder *treebuilder,
err = process_character(treebuilder, &dummy);
if (err != HUBBUB_OK) {
- treebuilder->alloc(attrs, 0, treebuilder->alloc_pw);
+ free(attrs);
return err;
}
@@ -1278,18 +1276,18 @@ hubbub_error process_isindex_in_body(hubbub_treebuilder *treebuilder,
err = reconstruct_active_formatting_list(treebuilder);
if (err != HUBBUB_OK) {
- treebuilder->alloc(attrs, 0, treebuilder->alloc_pw);
+ free(attrs);
return err;
}
err = insert_element(treebuilder, &dummy.data.tag, false);
if (err != HUBBUB_OK) {
- treebuilder->alloc(attrs, 0, treebuilder->alloc_pw);
+ free(attrs);
return err;
}
/* No longer need attrs */
- treebuilder->alloc(attrs, 0, treebuilder->alloc_pw);
+ free(attrs);
treebuilder->context.frameset_ok = false;
diff --git a/src/treebuilder/internal.h b/src/treebuilder/internal.h
index 503168f..58c21d6 100644
--- a/src/treebuilder/internal.h
+++ b/src/treebuilder/internal.h
@@ -123,9 +123,6 @@ struct hubbub_treebuilder
hubbub_error_handler error_handler; /**< Error handler */
void *error_pw; /**< Error handler data */
-
- hubbub_allocator_fn alloc; /**< Memory (de)allocation function */
- void *alloc_pw; /**< Client private data */
};
hubbub_error hubbub_treebuilder_token_handler(
diff --git a/src/treebuilder/treebuilder.c b/src/treebuilder/treebuilder.c
index 10433b4..a6a4b43 100644
--- a/src/treebuilder/treebuilder.c
+++ b/src/treebuilder/treebuilder.c
@@ -85,25 +85,22 @@ static bool is_form_associated(element_type type);
* Create a hubbub treebuilder
*
* \param tokeniser Underlying tokeniser instance
- * \param alloc Memory (de)allocation function
- * \param pw Pointer to client-specific private data
* \param treebuilder Pointer to location to receive treebuilder instance
* \return HUBBUB_OK on success,
* HUBBUB_BADPARM on bad parameters
* HUBBUB_NOMEM on memory exhaustion
*/
hubbub_error hubbub_treebuilder_create(hubbub_tokeniser *tokeniser,
- hubbub_allocator_fn alloc, void *pw,
hubbub_treebuilder **treebuilder)
{
hubbub_error error;
hubbub_treebuilder *tb;
hubbub_tokeniser_optparams tokparams;
- if (tokeniser == NULL || alloc == NULL || treebuilder == NULL)
+ if (tokeniser == NULL || treebuilder == NULL)
return HUBBUB_BADPARM;
- tb = alloc(NULL, sizeof(hubbub_treebuilder), pw);
+ tb = malloc(sizeof(hubbub_treebuilder));
if (tb == NULL)
return HUBBUB_NOMEM;
@@ -114,11 +111,10 @@ hubbub_error hubbub_treebuilder_create(hubbub_tokeniser *tokeniser,
memset(&tb->context, 0, sizeof(hubbub_treebuilder_context));
tb->context.mode = INITIAL;
- tb->context.element_stack = alloc(NULL,
- ELEMENT_STACK_CHUNK * sizeof(element_context),
- pw);
+ tb->context.element_stack = malloc(
+ ELEMENT_STACK_CHUNK * sizeof(element_context));
if (tb->context.element_stack == NULL) {
- alloc(tb, 0, pw);
+ free(tb);
return HUBBUB_NOMEM;
}
tb->context.stack_alloc = ELEMENT_STACK_CHUNK;
@@ -133,17 +129,14 @@ hubbub_error hubbub_treebuilder_create(hubbub_tokeniser *tokeniser,
tb->error_handler = NULL;
tb->error_pw = NULL;
- tb->alloc = alloc;
- tb->alloc_pw = pw;
-
tokparams.token_handler.handler = hubbub_treebuilder_token_handler;
tokparams.token_handler.pw = tb;
error = hubbub_tokeniser_setopt(tokeniser,
HUBBUB_TOKENISER_TOKEN_HANDLER, &tokparams);
if (error != HUBBUB_OK) {
- alloc(tb->context.element_stack, 0, pw);
- alloc(tb, 0, pw);
+ free(tb->context.element_stack);
+ free(tb);
return error;
}
@@ -206,8 +199,7 @@ hubbub_error hubbub_treebuilder_destroy(hubbub_treebuilder *treebuilder)
treebuilder->context.element_stack[0].node);
}
}
- treebuilder->alloc(treebuilder->context.element_stack, 0,
- treebuilder->alloc_pw);
+ free(treebuilder->context.element_stack);
treebuilder->context.element_stack = NULL;
for (entry = treebuilder->context.formatting_list; entry != NULL;
@@ -220,10 +212,10 @@ hubbub_error hubbub_treebuilder_destroy(hubbub_treebuilder *treebuilder)
entry->details.node);
}
- treebuilder->alloc(entry, 0, treebuilder->alloc_pw);
+ free(entry);
}
- treebuilder->alloc(treebuilder, 0, treebuilder->alloc_pw);
+ free(treebuilder);
return HUBBUB_OK;
}
@@ -1086,12 +1078,11 @@ hubbub_error element_stack_push(hubbub_treebuilder *treebuilder,
uint32_t slot = treebuilder->context.current_node + 1;
if (slot >= treebuilder->context.stack_alloc) {
- element_context *temp = treebuilder->alloc(
+ element_context *temp = realloc(
treebuilder->context.element_stack,
(treebuilder->context.stack_alloc +
ELEMENT_STACK_CHUNK) *
- sizeof(element_context),
- treebuilder->alloc_pw);
+ sizeof(element_context));
if (temp == NULL)
return HUBBUB_NOMEM;
@@ -1303,8 +1294,7 @@ hubbub_error formatting_list_append(hubbub_treebuilder *treebuilder,
{
formatting_list_entry *entry;
- entry = treebuilder->alloc(NULL, sizeof(formatting_list_entry),
- treebuilder->alloc_pw);
+ entry = malloc(sizeof(formatting_list_entry));
if (entry == NULL)
return HUBBUB_NOMEM;
@@ -1353,8 +1343,7 @@ hubbub_error formatting_list_insert(hubbub_treebuilder *treebuilder,
assert(next->prev == prev);
}
- entry = treebuilder->alloc(NULL, sizeof(formatting_list_entry),
- treebuilder->alloc_pw);
+ entry = malloc(sizeof(formatting_list_entry));
if (entry == NULL)
return HUBBUB_NOMEM;
@@ -1411,7 +1400,7 @@ hubbub_error formatting_list_remove(hubbub_treebuilder *treebuilder,
else
entry->next->prev = entry->prev;
- treebuilder->alloc(entry, 0, treebuilder->alloc_pw);
+ free(entry);
return HUBBUB_OK;
}
diff --git a/src/treebuilder/treebuilder.h b/src/treebuilder/treebuilder.h
index 2ff1c38..5308eba 100644
--- a/src/treebuilder/treebuilder.h
+++ b/src/treebuilder/treebuilder.h
@@ -48,7 +48,6 @@ typedef union hubbub_treebuilder_optparams {
/* Create a hubbub treebuilder */
hubbub_error hubbub_treebuilder_create(hubbub_tokeniser *tokeniser,
- hubbub_allocator_fn alloc, void *pw,
hubbub_treebuilder **treebuilder);
/* Destroy a hubbub treebuilder */