summaryrefslogtreecommitdiff
path: root/src/html/html_select_element.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/html/html_select_element.c')
-rw-r--r--src/html/html_select_element.c60
1 files changed, 22 insertions, 38 deletions
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 <assert.h>
+#include <stdlib.h>
#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;
}