diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/treebuilder/in_cell.c | 2 | ||||
-rw-r--r-- | src/treebuilder/in_row.c | 8 | ||||
-rw-r--r-- | src/treebuilder/in_table.c | 2 | ||||
-rw-r--r-- | src/treebuilder/in_table_body.c | 10 |
4 files changed, 10 insertions, 12 deletions
diff --git a/src/treebuilder/in_cell.c b/src/treebuilder/in_cell.c index bb8391f..797b434 100644 --- a/src/treebuilder/in_cell.c +++ b/src/treebuilder/in_cell.c @@ -15,7 +15,7 @@ /** - * Clear the stack back to a table body context. + * Clear the stack back to a table row context. * * \param treebuilder The treebuilder instance */ diff --git a/src/treebuilder/in_row.c b/src/treebuilder/in_row.c index fdbaf83..c7afb1c 100644 --- a/src/treebuilder/in_row.c +++ b/src/treebuilder/in_row.c @@ -15,14 +15,13 @@ /** - * Clear the stack back to a table body context. + * Clear the stack back to a table row context. * * \param treebuilder The treebuilder instance */ static void table_clear_stack(hubbub_treebuilder *treebuilder) { - element_type cur_node = treebuilder->context.element_stack[ - treebuilder->context.current_node].type; + element_type cur_node = current_node(treebuilder); while (cur_node != TR && cur_node != HTML) { hubbub_ns ns; @@ -37,8 +36,7 @@ static void table_clear_stack(hubbub_treebuilder *treebuilder) treebuilder->tree_handler->ctx, node); - cur_node = treebuilder->context.element_stack[ - treebuilder->context.current_node].type; + cur_node = current_node(treebuilder); } return; diff --git a/src/treebuilder/in_table.c b/src/treebuilder/in_table.c index 6622ea6..e43a423 100644 --- a/src/treebuilder/in_table.c +++ b/src/treebuilder/in_table.c @@ -32,6 +32,8 @@ static inline void clear_stack_table_context(hubbub_treebuilder *treebuilder) treebuilder->tree_handler->unref_node( treebuilder->tree_handler->ctx, node); + + type = current_node(treebuilder); } return; diff --git a/src/treebuilder/in_table_body.c b/src/treebuilder/in_table_body.c index 94d4fa2..c5e5610 100644 --- a/src/treebuilder/in_table_body.c +++ b/src/treebuilder/in_table_body.c @@ -21,8 +21,7 @@ */ static void table_clear_stack(hubbub_treebuilder *treebuilder) { - element_type cur_node = treebuilder->context.element_stack[ - treebuilder->context.current_node].type; + element_type cur_node = current_node(treebuilder); while (cur_node != TBODY && cur_node != TFOOT && cur_node != THEAD && cur_node != HTML) { @@ -38,8 +37,7 @@ static void table_clear_stack(hubbub_treebuilder *treebuilder) treebuilder->tree_handler->ctx, node); - cur_node = treebuilder->context.element_stack[ - treebuilder->context.current_node].type; + cur_node = current_node(treebuilder); } return; @@ -109,7 +107,7 @@ bool handle_in_table_body(hubbub_treebuilder *treebuilder, table_clear_stack(treebuilder); insert_element(treebuilder, &token->data.tag); treebuilder->context.mode = IN_ROW; - } else if (type == TH || TD) { + } else if (type == TH || type == TD) { hubbub_tag tag; /** \todo parse error */ @@ -132,7 +130,7 @@ bool handle_in_table_body(hubbub_treebuilder *treebuilder, type == TFOOT || type == THEAD) { reprocess = table_sub_start_or_table_end(treebuilder); } else { - reprocess = true; + reprocess = handle_in_table(treebuilder, token); } } break; |