From 83f3338663c4969eebefd8c2c43bd3fc43587fdd Mon Sep 17 00:00:00 2001 From: John Mark Bell Date: Wed, 21 Dec 2011 22:18:10 +0000 Subject: Merge branches/jmb/dom-alloc-purge back to trunk svn path=/trunk/libdom/; revision=13316 --- src/html/html_select_element.c | 60 ++++++++++++++++-------------------------- 1 file changed, 22 insertions(+), 38 deletions(-) (limited to 'src/html/html_select_element.c') diff --git a/src/html/html_select_element.c b/src/html/html_select_element.c index 134df3e..e8cf39e 100644 --- a/src/html/html_select_element.c +++ b/src/html/html_select_element.c @@ -6,6 +6,7 @@ */ #include +#include #include "html/html_select_element.h" @@ -21,6 +22,7 @@ static struct dom_element_protected_vtable _protect_vtable = { }; static bool is_option(struct dom_node_internal *node); + /** * Create a dom_html_select_element object * @@ -31,7 +33,7 @@ static bool is_option(struct dom_node_internal *node); dom_exception _dom_html_select_element_create(struct dom_document *doc, struct dom_html_select_element **ele) { - *ele = _dom_document_alloc(doc, NULL, sizeof(dom_html_select_element)); + *ele = malloc(sizeof(dom_html_select_element)); if (*ele == NULL) return DOM_NO_MEM_ERR; @@ -53,17 +55,16 @@ dom_exception _dom_html_select_element_create(struct dom_document *doc, dom_exception _dom_html_select_element_initialise(struct dom_document *doc, struct dom_html_select_element *ele) { - const char *str = "SELECT"; - lwc_string *name = NULL; + dom_string *name = NULL; dom_exception err; - err = _dom_document_create_lwcstring(doc, (const uint8_t *) str, SLEN(str), + err = dom_string_create((const uint8_t *) "SELECT", SLEN("SELECT"), &name); if (err != DOM_NO_ERR) return err; err = _dom_html_element_initialise(doc, &ele->base, name, NULL, NULL); - _dom_document_unref_lwcstring(doc, name); + dom_string_unref(name); ele->selected = -1; ele->options = NULL; @@ -74,26 +75,22 @@ dom_exception _dom_html_select_element_initialise(struct dom_document *doc, /** * Finalise a dom_html_select_element object * - * \param doc The document object * \param ele The dom_html_select_element object */ -void _dom_html_select_element_finalise(struct dom_document *doc, - struct dom_html_select_element *ele) +void _dom_html_select_element_finalise(struct dom_html_select_element *ele) { - _dom_html_element_finalise(doc, &ele->base); + _dom_html_element_finalise(&ele->base); } /** * Destroy a dom_html_select_element object * - * \param doc The document object * \param ele The dom_html_select_element object */ -void _dom_html_select_element_destroy(struct dom_document *doc, - struct dom_html_select_element *ele) +void _dom_html_select_element_destroy(struct dom_html_select_element *ele) { - _dom_html_select_element_finalise(doc, ele); - _dom_document_alloc(doc, ele, 0); + _dom_html_select_element_finalise(ele); + free(ele); } /*------------------------------------------------------------------------*/ @@ -117,28 +114,14 @@ dom_exception _dom_html_select_element_parse_attribute(dom_element *ele, /* The virtual destroy function, see src/core/node.c for detail */ void _dom_virtual_html_select_element_destroy(dom_node_internal *node) { - struct dom_document *doc = dom_node_get_owner(node); - _dom_html_select_element_destroy(doc, (struct dom_html_select_element *) node); -} - -/* The virtual allocation function, see src/core/node.c for detail */ -dom_exception _dom_html_select_element_alloc(struct dom_document *doc, - struct dom_node_internal *n, struct dom_node_internal **ret) -{ - UNUSED(n); - - *ret = _dom_document_alloc(doc, NULL, sizeof(dom_html_select_element)); - if (*ret == NULL) - return DOM_NO_MEM_ERR; - - return DOM_NO_ERR; + _dom_html_select_element_destroy((struct dom_html_select_element *) node); } /* The virtual copy function, see src/core/node.c for detail */ -dom_exception _dom_html_select_element_copy(struct dom_node_internal *new, - struct dom_node_internal *old) +dom_exception _dom_html_select_element_copy(dom_node_internal *old, + dom_node_internal **copy) { - return _dom_html_element_copy(new, old); + return _dom_html_element_copy(old, copy); } /*-----------------------------------------------------------------------*/ @@ -327,18 +310,19 @@ dom_exception dom_html_element_focus(struct dom_html_select_element *ele); /* Test whether certain node is an option node */ bool is_option(struct dom_node_internal *node) { - lwc_string *name = NULL; + dom_string *name = NULL; bool ret = false; dom_exception err; - err = _dom_node_create_lwcstring(node, (const uint8_t *) "OPTION", - SLEN("OPTION"), &name); - assert(err == DOM_NO_ERR); + err = dom_string_create((const uint8_t *) "OPTION", SLEN("OPTION"), + &name); + if (err != DOM_NO_ERR) + return false; - if (name == node->name) + if (dom_string_isequal(name, node->name)) ret = true; - _dom_node_unref_intern_string(node, name); + dom_string_unref(name); return ret; } -- cgit v1.2.3