From e13599e9c92a4dc93443c1dd63b1dbf4b665c83b Mon Sep 17 00:00:00 2001 From: Michael Drake Date: Fri, 5 Feb 2016 18:03:33 +0000 Subject: Fix: Proper copy constructor for HTMLTableRowElement. --- src/html/html_tablerow_element.c | 35 ++++++++++++++++++++++++++++++++--- 1 file changed, 32 insertions(+), 3 deletions(-) (limited to 'src/html/html_tablerow_element.c') diff --git a/src/html/html_tablerow_element.c b/src/html/html_tablerow_element.c index 0d4f3eb..f4925bb 100644 --- a/src/html/html_tablerow_element.c +++ b/src/html/html_tablerow_element.c @@ -112,10 +112,39 @@ void _dom_virtual_html_table_row_element_destroy(dom_node_internal *node) } /* The virtual copy function, see src/core/node.c for detail */ -dom_exception _dom_html_table_row_element_copy(dom_node_internal *old, - dom_node_internal **copy) +dom_exception _dom_html_table_row_element_copy( + dom_node_internal *old, dom_node_internal **copy) { - return _dom_html_element_copy(old, copy); + dom_html_table_row_element *new_node; + dom_exception err; + + new_node = malloc(sizeof(dom_html_table_row_element)); + if (new_node == NULL) + return DOM_NO_MEM_ERR; + + err = dom_html_table_row_element_copy_internal(old, new_node); + if (err != DOM_NO_ERR) { + free(new_node); + return err; + } + + *copy = (dom_node_internal *) new_node; + + return DOM_NO_ERR; +} + +dom_exception _dom_html_table_row_element_copy_internal( + dom_html_table_row_element *old, + dom_html_table_row_element *new) +{ + dom_exception err; + + err = dom_html_element_copy_internal(old, new); + if (err != DOM_NO_ERR) { + return err; + } + + return DOM_NO_ERR; } /*-----------------------------------------------------------------------*/ -- cgit v1.2.3 From f566b7cab8ffc9f4e959154a57bef91521f20d8a Mon Sep 17 00:00:00 2001 From: Michael Drake Date: Fri, 5 Feb 2016 18:04:10 +0000 Subject: Cleanup: Remove odd declaration of callback outside header guard. --- src/html/html_tablerow_element.c | 2 +- src/html/html_tablerow_element.h | 1 - 2 files changed, 1 insertion(+), 2 deletions(-) (limited to 'src/html/html_tablerow_element.c') diff --git a/src/html/html_tablerow_element.c b/src/html/html_tablerow_element.c index f4925bb..b722d0d 100644 --- a/src/html/html_tablerow_element.c +++ b/src/html/html_tablerow_element.c @@ -317,7 +317,7 @@ dom_exception dom_html_table_row_element_get_section_row_index( * \param ctx The dom_html_document object (void *) * \return DOM_NO_ERR on success, appropriate dom_exception on failure. */ -bool table_cells_callback(struct dom_node_internal *node, void *ctx) +static bool table_cells_callback(struct dom_node_internal *node, void *ctx) { dom_html_document *doc = ctx; if (node->type == DOM_ELEMENT_NODE && diff --git a/src/html/html_tablerow_element.h b/src/html/html_tablerow_element.h index c674207..5c8a4e4 100644 --- a/src/html/html_tablerow_element.h +++ b/src/html/html_tablerow_element.h @@ -58,5 +58,4 @@ dom_exception _dom_html_table_row_element_copy_internal( (dom_html_table_row_element *) (n)) #endif -bool table_cells_callback(struct dom_node_internal *node, void *ctx); -- cgit v1.2.3