diff options
author | Michael Drake <tlsa@netsurf-browser.org> | 2013-12-14 23:15:34 +0000 |
---|---|---|
committer | Michael Drake <tlsa@netsurf-browser.org> | 2013-12-14 23:15:34 +0000 |
commit | 528795a5daf767532a42b492db29deeadebcb249 (patch) | |
tree | 06b6fba37d2a740341139131cfbd47eb0b59ab7f /src/treebuilder | |
parent | d509919a3bc507f3898e2166978462badbaab599 (diff) | |
download | libhubbub-528795a5daf767532a42b492db29deeadebcb249.tar.gz libhubbub-528795a5daf767532a42b492db29deeadebcb249.tar.bz2 |
Remove client allocation function and update for new lpu API.
Diffstat (limited to 'src/treebuilder')
-rw-r--r-- | src/treebuilder/in_body.c | 22 | ||||
-rw-r--r-- | src/treebuilder/internal.h | 3 | ||||
-rw-r--r-- | src/treebuilder/treebuilder.c | 41 | ||||
-rw-r--r-- | src/treebuilder/treebuilder.h | 1 |
4 files changed, 25 insertions, 42 deletions
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 */ |