diff options
author | Michael Drake <michael.drake@codethink.co.uk> | 2016-02-05 17:57:57 +0000 |
---|---|---|
committer | Michael Drake <michael.drake@codethink.co.uk> | 2016-02-05 17:57:57 +0000 |
commit | 349992cfee0812dc3045b40aea52184fd90cdc7c (patch) | |
tree | ce16a170448e1a530671b1d976cc400711c71400 /src | |
parent | 103c582b3beb6db4d9f1d73c8aa9e7b7121cd977 (diff) | |
download | libdom-349992cfee0812dc3045b40aea52184fd90cdc7c.tar.gz libdom-349992cfee0812dc3045b40aea52184fd90cdc7c.tar.bz2 |
Fix: Proper copy constructor for HTMLTableCaptionElement.
Diffstat (limited to 'src')
-rw-r--r-- | src/html/html_tablecaption_element.c | 35 | ||||
-rw-r--r-- | src/html/html_tablecaption_element.h | 9 |
2 files changed, 41 insertions, 3 deletions
diff --git a/src/html/html_tablecaption_element.c b/src/html/html_tablecaption_element.c index 5a4b1b1..cae229c 100644 --- a/src/html/html_tablecaption_element.c +++ b/src/html/html_tablecaption_element.c @@ -109,10 +109,39 @@ void _dom_virtual_html_table_caption_element_destroy(dom_node_internal *node) } /* The virtual copy function, see src/core/node.c for detail */ -dom_exception _dom_html_table_caption_element_copy(dom_node_internal *old, - dom_node_internal **copy) +dom_exception _dom_html_table_caption_element_copy( + dom_node_internal *old, dom_node_internal **copy) { - return _dom_html_element_copy(old, copy); + dom_html_table_caption_element *new_node; + dom_exception err; + + new_node = malloc(sizeof(dom_html_table_caption_element)); + if (new_node == NULL) + return DOM_NO_MEM_ERR; + + err = dom_html_table_caption_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_caption_element_copy_internal( + dom_html_table_caption_element *old, + dom_html_table_caption_element *new) +{ + dom_exception err; + + err = dom_html_element_copy_internal(old, new); + if (err != DOM_NO_ERR) { + return err; + } + + return DOM_NO_ERR; } /*-----------------------------------------------------------------------*/ diff --git a/src/html/html_tablecaption_element.h b/src/html/html_tablecaption_element.h index 971c55c..3d65806 100644 --- a/src/html/html_tablecaption_element.h +++ b/src/html/html_tablecaption_element.h @@ -49,4 +49,13 @@ dom_exception _dom_html_table_caption_element_copy(dom_node_internal *old, _dom_virtual_html_table_caption_element_destroy, \ _dom_html_table_caption_element_copy +/* Helper functions*/ +dom_exception _dom_html_table_caption_element_copy_internal( + dom_html_table_caption_element *old, + dom_html_table_caption_element *new); +#define dom_html_table_caption_element_copy_internal(o, n) \ + _dom_html_table_caption_element_copy_internal( \ + (dom_html_table_caption_element *) (o), \ + (dom_html_table_caption_element *) (n)) + #endif |