From 6481bd7f3a503573c31b224dfde229dce2e9b68f Mon Sep 17 00:00:00 2001 From: Andrew Sidwell Date: Sat, 9 Aug 2008 19:34:52 +0000 Subject: Propagate the use of hubbub_error up into at least a bit of the treebuilder. svn path=/trunk/hubbub/; revision=4979 --- src/tokeniser/tokeniser.c | 6 ++++-- src/treebuilder/internal.h | 3 ++- src/treebuilder/treebuilder.c | 6 ++++-- 3 files changed, 10 insertions(+), 5 deletions(-) (limited to 'src') diff --git a/src/tokeniser/tokeniser.c b/src/tokeniser/tokeniser.c index 73f7bf6..a4d7046 100644 --- a/src/tokeniser/tokeniser.c +++ b/src/tokeniser/tokeniser.c @@ -3023,12 +3023,14 @@ hubbub_error emit_current_doctype(hubbub_tokeniser *tokeniser, hubbub_error hubbub_tokeniser_emit_token(hubbub_tokeniser *tokeniser, hubbub_token *token) { + hubbub_error err = HUBBUB_OK; + assert(tokeniser != NULL); assert(token != NULL); /* Emit the token */ if (tokeniser->token_handler) { - tokeniser->token_handler(token, tokeniser->token_pw); + err = tokeniser->token_handler(token, tokeniser->token_pw); } /* Discard current buffer */ @@ -3044,5 +3046,5 @@ hubbub_error hubbub_tokeniser_emit_token(hubbub_tokeniser *tokeniser, tokeniser->context.pending = 0; } - return HUBBUB_OK; + return err; } diff --git a/src/treebuilder/internal.h b/src/treebuilder/internal.h index 059e177..c63ee99 100644 --- a/src/treebuilder/internal.h +++ b/src/treebuilder/internal.h @@ -115,7 +115,8 @@ struct hubbub_treebuilder void *alloc_pw; /**< Client private data */ }; -void hubbub_treebuilder_token_handler(const hubbub_token *token, void *pw); +hubbub_error hubbub_treebuilder_token_handler( + const hubbub_token *token, void *pw); bool process_characters_expect_whitespace( hubbub_treebuilder *treebuilder, const hubbub_token *token, diff --git a/src/treebuilder/treebuilder.c b/src/treebuilder/treebuilder.c index 95a05b5..8bc9d52 100644 --- a/src/treebuilder/treebuilder.c +++ b/src/treebuilder/treebuilder.c @@ -251,7 +251,7 @@ hubbub_error hubbub_treebuilder_setopt(hubbub_treebuilder *treebuilder, * \param token The emitted token * \param pw Pointer to treebuilder instance */ -void hubbub_treebuilder_token_handler(const hubbub_token *token, +hubbub_error hubbub_treebuilder_token_handler(const hubbub_token *token, void *pw) { hubbub_treebuilder *treebuilder = (hubbub_treebuilder *) pw; @@ -260,7 +260,7 @@ void hubbub_treebuilder_token_handler(const hubbub_token *token, /* Do nothing if we have no document node or there's no tree handler */ if (treebuilder->context.document == NULL || treebuilder->tree_handler == NULL) - return; + return HUBBUB_OK; assert((signed) treebuilder->context.current_node >= 0); @@ -348,6 +348,8 @@ void hubbub_treebuilder_token_handler(const hubbub_token *token, break; } } + + return HUBBUB_OK; } -- cgit v1.2.3