summaryrefslogtreecommitdiff
path: root/src/parser.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/parser.c')
-rw-r--r--src/parser.c28
1 files changed, 10 insertions, 18 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;
}