summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMichael Drake <michael.drake@codethink.co.uk>2016-01-27 12:14:12 +0000
committerMichael Drake <michael.drake@codethink.co.uk>2016-01-27 15:20:27 +0000
commit6d600214268e64e6bc83df61d8abfdf8963acdad (patch)
treed43adeb39b6e76c61fe434fb15ead4e20d39e4ea
parent410274173d434e34a5eb085d13228d68cd44d509 (diff)
downloadlibdom-6d600214268e64e6bc83df61d8abfdf8963acdad.tar.gz
Split out tag names from general string table and enum.
Previously these were mixed in the the document's general memoised strings. This also gives us an enum by which HTML elements can be identified.
-rw-r--r--bindings/hubbub/parser.c11
-rw-r--r--include/dom/html/html_elements.h94
-rw-r--r--src/html/html_anchor_element.c4
-rw-r--r--src/html/html_applet_element.c2
-rw-r--r--src/html/html_area_element.c4
-rw-r--r--src/html/html_basefont_element.c4
-rw-r--r--src/html/html_body_element.c7
-rw-r--r--src/html/html_br_element.c4
-rw-r--r--src/html/html_button_element.c4
-rw-r--r--src/html/html_directory_element.c4
-rw-r--r--src/html/html_div_element.c4
-rw-r--r--src/html/html_dlist_element.c4
-rw-r--r--src/html/html_document.c286
-rw-r--r--src/html/html_document.h2
-rw-r--r--src/html/html_document_strings.h64
-rw-r--r--src/html/html_element.h1
-rw-r--r--src/html/html_fieldset_element.c6
-rw-r--r--src/html/html_font_element.c4
-rw-r--r--src/html/html_form_element.c12
-rw-r--r--src/html/html_frame_element.c8
-rw-r--r--src/html/html_frameset_element.c4
-rw-r--r--src/html/html_head_element.c4
-rw-r--r--src/html/html_heading_element.c3
-rw-r--r--src/html/html_hr_element.c4
-rw-r--r--src/html/html_html_element.c7
-rw-r--r--src/html/html_iframe_element.c7
-rw-r--r--src/html/html_image_element.c4
-rw-r--r--src/html/html_input_element.c4
-rw-r--r--src/html/html_isindex_element.c4
-rw-r--r--src/html/html_label_element.c4
-rw-r--r--src/html/html_legend_element.c6
-rw-r--r--src/html/html_li_element.c4
-rw-r--r--src/html/html_link_element.c4
-rw-r--r--src/html/html_map_element.c8
-rw-r--r--src/html/html_menu_element.c4
-rw-r--r--src/html/html_meta_element.c4
-rw-r--r--src/html/html_mod_element.c3
-rw-r--r--src/html/html_object_element.c4
-rw-r--r--src/html/html_olist_element.c4
-rw-r--r--src/html/html_opt_group_element.c4
-rw-r--r--src/html/html_option_element.c8
-rw-r--r--src/html/html_options_collection.c2
-rw-r--r--src/html/html_paragraph_element.c4
-rw-r--r--src/html/html_param_element.c4
-rw-r--r--src/html/html_pre_element.c4
-rw-r--r--src/html/html_quote_element.c4
-rw-r--r--src/html/html_script_element.c4
-rw-r--r--src/html/html_select_element.c5
-rw-r--r--src/html/html_table_element.c48
-rw-r--r--src/html/html_tablecaption_element.c4
-rw-r--r--src/html/html_tablecell_element.c31
-rw-r--r--src/html/html_tablecol_element.c6
-rw-r--r--src/html/html_tablerow_element.c65
-rw-r--r--src/html/html_tablesection_element.c6
-rw-r--r--src/html/html_text_area_element.c4
-rw-r--r--src/html/html_title_element.c4
-rw-r--r--src/html/html_ulist_element.c4
57 files changed, 502 insertions, 324 deletions
diff --git a/bindings/hubbub/parser.c b/bindings/hubbub/parser.c
index a2a33ed7..9dfe7388 100644
--- a/bindings/hubbub/parser.c
+++ b/bindings/hubbub/parser.c
@@ -55,7 +55,8 @@ struct dom_hubbub_parser {
};
/* Forward declaration to break reference loop */
-static hubbub_error add_attributes(void *parser, void *node, const hubbub_attribute *attributes, uint32_t n_attributes);
+static hubbub_error add_attributes(void *parser, void *node,
+ const hubbub_attribute *attributes, uint32_t n_attributes);
@@ -479,7 +480,7 @@ static hubbub_error form_associate(void *parser, void *form, void *node)
/* Determine the kind of the node we have here. */
if (dom_string_caseless_isequal(ele->name,
- doc->memoised[hds_BUTTON])) {
+ doc->elements[DOM_HTML_ELEMENT_TYPE_BUTTON])) {
err = _dom_html_button_element_set_form(
(dom_html_button_element *)node, form_ele);
if (err != DOM_NO_ERR) {
@@ -488,7 +489,7 @@ static hubbub_error form_associate(void *parser, void *form, void *node)
return HUBBUB_UNKNOWN;
}
} else if (dom_string_caseless_isequal(ele->name,
- doc->memoised[hds_INPUT])) {
+ doc->elements[DOM_HTML_ELEMENT_TYPE_INPUT])) {
err = _dom_html_input_element_set_form(
(dom_html_input_element *)node, form_ele);
if (err != DOM_NO_ERR) {
@@ -497,7 +498,7 @@ static hubbub_error form_associate(void *parser, void *form, void *node)
return HUBBUB_UNKNOWN;
}
} else if (dom_string_caseless_isequal(ele->name,
- doc->memoised[hds_SELECT])) {
+ doc->elements[DOM_HTML_ELEMENT_TYPE_SELECT])) {
err = _dom_html_select_element_set_form(
(dom_html_select_element *)node, form_ele);
if (err != DOM_NO_ERR) {
@@ -506,7 +507,7 @@ static hubbub_error form_associate(void *parser, void *form, void *node)
return HUBBUB_UNKNOWN;
}
} else if (dom_string_caseless_isequal(ele->name,
- doc->memoised[hds_TEXTAREA])) {
+ doc->elements[DOM_HTML_ELEMENT_TYPE_TEXTAREA])) {
err = _dom_html_text_area_element_set_form(
(dom_html_text_area_element *)node, form_ele);
if (err != DOM_NO_ERR) {
diff --git a/include/dom/html/html_elements.h b/include/dom/html/html_elements.h
new file mode 100644
index 00000000..d4aec100
--- /dev/null
+++ b/include/dom/html/html_elements.h
@@ -0,0 +1,94 @@
+/*
+ * This file is part of libdom.
+ * Licensed under the MIT License,
+ * http://www.opensource.org/licenses/mit-license.php
+ * Copyright 2016 Michael Drake <michael.drake@codethink.co.uk>
+ */
+
+#if !defined(dom_html_elements_h_) || defined(DOM_HTML_ELEMENT_STRINGS_ENTRY)
+#define dom_html_elements_h_
+
+#define DOM_HTML_ELEMENT_LIST \
+ DOM_HTML_ELEMENT_STRINGS_ENTRY(_UNKNOWN) \
+ DOM_HTML_ELEMENT_STRINGS_ENTRY(HTML) \
+ DOM_HTML_ELEMENT_STRINGS_ENTRY(HEAD) \
+ DOM_HTML_ELEMENT_STRINGS_ENTRY(LINK) \
+ DOM_HTML_ELEMENT_STRINGS_ENTRY(TITLE) \
+ DOM_HTML_ELEMENT_STRINGS_ENTRY(META) \
+ DOM_HTML_ELEMENT_STRINGS_ENTRY(BASE) \
+ DOM_HTML_ELEMENT_STRINGS_ENTRY(ISINDEX) \
+ DOM_HTML_ELEMENT_STRINGS_ENTRY(STYLE) \
+ DOM_HTML_ELEMENT_STRINGS_ENTRY(BODY) \
+ DOM_HTML_ELEMENT_STRINGS_ENTRY(FORM) \
+ DOM_HTML_ELEMENT_STRINGS_ENTRY(SELECT) \
+ DOM_HTML_ELEMENT_STRINGS_ENTRY(OPTGROUP) \
+ DOM_HTML_ELEMENT_STRINGS_ENTRY(OPTION) \
+ DOM_HTML_ELEMENT_STRINGS_ENTRY(INPUT) \
+ DOM_HTML_ELEMENT_STRINGS_ENTRY(TEXTAREA) \
+ DOM_HTML_ELEMENT_STRINGS_ENTRY(BUTTON) \
+ DOM_HTML_ELEMENT_STRINGS_ENTRY(LABEL) \
+ DOM_HTML_ELEMENT_STRINGS_ENTRY(FIELDSET) \
+ DOM_HTML_ELEMENT_STRINGS_ENTRY(LEGEND) \
+ DOM_HTML_ELEMENT_STRINGS_ENTRY(UL) \
+ DOM_HTML_ELEMENT_STRINGS_ENTRY(OL) \
+ DOM_HTML_ELEMENT_STRINGS_ENTRY(DL) \
+ DOM_HTML_ELEMENT_STRINGS_ENTRY(DIRECTORY) \
+ DOM_HTML_ELEMENT_STRINGS_ENTRY(MENU) \
+ DOM_HTML_ELEMENT_STRINGS_ENTRY(LI) \
+ DOM_HTML_ELEMENT_STRINGS_ENTRY(BLOCKQUOTE) \
+ DOM_HTML_ELEMENT_STRINGS_ENTRY(DIV) \
+ DOM_HTML_ELEMENT_STRINGS_ENTRY(P) \
+ DOM_HTML_ELEMENT_STRINGS_ENTRY(H1) \
+ DOM_HTML_ELEMENT_STRINGS_ENTRY(H2) \
+ DOM_HTML_ELEMENT_STRINGS_ENTRY(H3) \
+ DOM_HTML_ELEMENT_STRINGS_ENTRY(H4) \
+ DOM_HTML_ELEMENT_STRINGS_ENTRY(H5) \
+ DOM_HTML_ELEMENT_STRINGS_ENTRY(H6) \
+ DOM_HTML_ELEMENT_STRINGS_ENTRY(Q) \
+ DOM_HTML_ELEMENT_STRINGS_ENTRY(PRE) \
+ DOM_HTML_ELEMENT_STRINGS_ENTRY(BR) \
+ DOM_HTML_ELEMENT_STRINGS_ENTRY(BASEFONT) \
+ DOM_HTML_ELEMENT_STRINGS_ENTRY(FONT) \
+ DOM_HTML_ELEMENT_STRINGS_ENTRY(HR) \
+ DOM_HTML_ELEMENT_STRINGS_ENTRY(INS) \
+ DOM_HTML_ELEMENT_STRINGS_ENTRY(DEL) \
+ DOM_HTML_ELEMENT_STRINGS_ENTRY(A) \
+ DOM_HTML_ELEMENT_STRINGS_ENTRY(IMG) \
+ DOM_HTML_ELEMENT_STRINGS_ENTRY(OBJECT) \
+ DOM_HTML_ELEMENT_STRINGS_ENTRY(PARAM) \
+ DOM_HTML_ELEMENT_STRINGS_ENTRY(APPLET) \
+ DOM_HTML_ELEMENT_STRINGS_ENTRY(MAP) \
+ DOM_HTML_ELEMENT_STRINGS_ENTRY(AREA) \
+ DOM_HTML_ELEMENT_STRINGS_ENTRY(SCRIPT) \
+ DOM_HTML_ELEMENT_STRINGS_ENTRY(TABLE) \
+ DOM_HTML_ELEMENT_STRINGS_ENTRY(CAPTION) \
+ DOM_HTML_ELEMENT_STRINGS_ENTRY(COL) \
+ DOM_HTML_ELEMENT_STRINGS_ENTRY(COLGROUP) \
+ DOM_HTML_ELEMENT_STRINGS_ENTRY(THEAD) \
+ DOM_HTML_ELEMENT_STRINGS_ENTRY(TFOOT) \
+ DOM_HTML_ELEMENT_STRINGS_ENTRY(TBODY) \
+ DOM_HTML_ELEMENT_STRINGS_ENTRY(TR) \
+ DOM_HTML_ELEMENT_STRINGS_ENTRY(TH) \
+ DOM_HTML_ELEMENT_STRINGS_ENTRY(TD) \
+ DOM_HTML_ELEMENT_STRINGS_ENTRY(FRAMESET) \
+ DOM_HTML_ELEMENT_STRINGS_ENTRY(FRAME) \
+ DOM_HTML_ELEMENT_STRINGS_ENTRY(IFRAME)
+
+/* Generate enum containing DOM_HTML_ELEMENT_<TAG_NAME> entries,
+ * unless the includer defined DOM_HTML_ELEMENT_STRINGS_ENTRY
+ * to do something else.
+ */
+#ifndef DOM_HTML_ELEMENT_STRINGS_ENTRY
+#define DOM_HTML_ELEMENT_STRINGS_ENTRY(tag) \
+ DOM_HTML_ELEMENT_TYPE_##tag,
+typedef enum {
+DOM_HTML_ELEMENT_LIST
+ DOM_HTML_ELEMENT_TYPE__COUNT
+} dom_html_element_type;
+#undef DOM_HTML_ELEMENT_STRINGS_ENTRY
+#else
+DOM_HTML_ELEMENT_LIST
+#endif
+
+#undef DOM_HTML_ELEMENT_LIST
+#endif \ No newline at end of file
diff --git a/src/html/html_anchor_element.c b/src/html/html_anchor_element.c
index 77f8cefe..5ad473b4 100644
--- a/src/html/html_anchor_element.c
+++ b/src/html/html_anchor_element.c
@@ -62,8 +62,8 @@ dom_exception _dom_html_anchor_element_initialise(struct dom_html_document *doc,
struct dom_html_anchor_element *ele)
{
return _dom_html_element_initialise(doc, &ele->base,
- doc->memoised[hds_A],
- namespace, prefix);
+ doc->elements[DOM_HTML_ELEMENT_TYPE_A],
+ namespace, prefix);
}
/**
diff --git a/src/html/html_applet_element.c b/src/html/html_applet_element.c
index 9f6c16fb..dedcbc57 100644
--- a/src/html/html_applet_element.c
+++ b/src/html/html_applet_element.c
@@ -62,7 +62,7 @@ dom_exception _dom_html_applet_element_initialise(struct dom_html_document *doc,
struct dom_html_applet_element *ele)
{
return _dom_html_element_initialise(doc, &ele->base,
- doc->memoised[hds_APPLET],
+ doc->elements[DOM_HTML_ELEMENT_TYPE_APPLET],
namespace, prefix);
}
diff --git a/src/html/html_area_element.c b/src/html/html_area_element.c
index 85a2a3e0..b3ca8dd8 100644
--- a/src/html/html_area_element.c
+++ b/src/html/html_area_element.c
@@ -61,8 +61,8 @@ dom_exception _dom_html_area_element_initialise(struct dom_html_document *doc,
struct dom_html_area_element *ele)
{
return _dom_html_element_initialise(doc, &ele->base,
- doc->memoised[hds_AREA],
- namespace, prefix);
+ doc->elements[DOM_HTML_ELEMENT_TYPE_AREA],
+ namespace, prefix);
}
/**
diff --git a/src/html/html_basefont_element.c b/src/html/html_basefont_element.c
index 7aa20a0d..f8e9249d 100644
--- a/src/html/html_basefont_element.c
+++ b/src/html/html_basefont_element.c
@@ -61,8 +61,8 @@ dom_exception _dom_html_base_font_element_initialise(struct dom_html_document *d
struct dom_html_base_font_element *ele)
{
return _dom_html_element_initialise(doc, &ele->base,
- doc->memoised[hds_BASEFONT],
- namespace, prefix);
+ doc->elements[DOM_HTML_ELEMENT_TYPE_BASEFONT],
+ namespace, prefix);
}
/**
diff --git a/src/html/html_body_element.c b/src/html/html_body_element.c
index f2c10fe8..f63583e3 100644
--- a/src/html/html_body_element.c
+++ b/src/html/html_body_element.c
@@ -30,7 +30,7 @@ static struct dom_element_protected_vtable _protect_vtable = {
* \return DOM_NO_ERR on success, appropriate dom_exception on failure.
*/
dom_exception _dom_html_body_element_create(struct dom_html_document *doc,
- dom_string *namespace, dom_string *prefix,
+ dom_string *namespace, dom_string *prefix,
struct dom_html_body_element **ele)
{
struct dom_node_internal *node;
@@ -55,11 +55,12 @@ dom_exception _dom_html_body_element_create(struct dom_html_document *doc,
* \return DOM_NO_ERR on success, appropriate dom_exception on failure.
*/
dom_exception _dom_html_body_element_initialise(struct dom_html_document *doc,
- dom_string *namespace, dom_string *prefix,
+ dom_string *namespace, dom_string *prefix,
struct dom_html_body_element *ele)
{
return _dom_html_element_initialise(doc, &ele->base,
- doc->memoised[hds_BODY], namespace, prefix);
+ doc->elements[DOM_HTML_ELEMENT_TYPE_BODY],
+ namespace, prefix);
}
/**
diff --git a/src/html/html_br_element.c b/src/html/html_br_element.c
index fbc133e3..ec5acf6c 100644
--- a/src/html/html_br_element.c
+++ b/src/html/html_br_element.c
@@ -61,8 +61,8 @@ dom_exception _dom_html_br_element_initialise(struct dom_html_document *doc,
struct dom_html_br_element *ele)
{
return _dom_html_element_initialise(doc, &ele->base,
- doc->memoised[hds_BR],
- namespace, prefix);
+ doc->elements[DOM_HTML_ELEMENT_TYPE_BR],
+ namespace, prefix);
}
/**
diff --git a/src/html/html_button_element.c b/src/html/html_button_element.c
index 95b5d315..28b694bd 100644
--- a/src/html/html_button_element.c
+++ b/src/html/html_button_element.c
@@ -63,8 +63,8 @@ dom_exception _dom_html_button_element_initialise(struct dom_html_document *doc,
ele->form = NULL;
return _dom_html_element_initialise(doc, &ele->base,
- doc->memoised[hds_BUTTON],
- namespace, prefix);
+ doc->elements[DOM_HTML_ELEMENT_TYPE_BUTTON],
+ namespace, prefix);
}
/**
diff --git a/src/html/html_directory_element.c b/src/html/html_directory_element.c
index 4e0d9e08..0ad88aec 100644
--- a/src/html/html_directory_element.c
+++ b/src/html/html_directory_element.c
@@ -61,8 +61,8 @@ dom_exception _dom_html_directory_element_initialise(struct dom_html_document *d
struct dom_html_directory_element *ele)
{
return _dom_html_element_initialise(doc, &ele->base,
- doc->memoised[hds_DIRECTORY],
- namespace, prefix);
+ doc->elements[DOM_HTML_ELEMENT_TYPE_DIRECTORY],
+ namespace, prefix);
}
/**
diff --git a/src/html/html_div_element.c b/src/html/html_div_element.c
index 0c689d6d..f5ef051a 100644
--- a/src/html/html_div_element.c
+++ b/src/html/html_div_element.c
@@ -61,8 +61,8 @@ dom_exception _dom_html_div_element_initialise(struct dom_html_document *doc,
struct dom_html_div_element *ele)
{
return _dom_html_element_initialise(doc, &ele->base,
- doc->memoised[hds_DIV],
- namespace, prefix);
+ doc->elements[DOM_HTML_ELEMENT_TYPE_DIV],
+ namespace, prefix);
}
/**
diff --git a/src/html/html_dlist_element.c b/src/html/html_dlist_element.c
index 5b25037e..38e3276c 100644
--- a/src/html/html_dlist_element.c
+++ b/src/html/html_dlist_element.c
@@ -61,8 +61,8 @@ dom_exception _dom_html_dlist_element_initialise(struct dom_html_document *doc,
struct dom_html_dlist_element *ele)
{
return _dom_html_element_initialise(doc, &ele->base,
- doc->memoised[hds_DL],
- namespace, prefix);
+ doc->elements[DOM_HTML_ELEMENT_TYPE_DL],
+ namespace, prefix);
}
/**
diff --git a/src/html/html_document.c b/src/html/html_document.c
index 096c84ec..c33753e0 100644
--- a/src/html/html_document.c
+++ b/src/html/html_document.c
@@ -8,6 +8,8 @@
#include <assert.h>
#include <stdlib.h>
+#include <dom/html/html_elements.h>
+
#include "html/html_document.h"
#include "html/html_element.h"
#include "html/html_collection.h"
@@ -134,10 +136,16 @@ dom_exception _dom_html_document_initialise(dom_html_document *doc,
error = DOM_NO_MEM_ERR;
goto out;
}
+ doc->elements = calloc(sizeof(dom_string *),
+ DOM_HTML_ELEMENT_TYPE__COUNT);
+ if (doc->elements == NULL) {
+ error = DOM_NO_MEM_ERR;
+ goto out;
+ }
-#define HTML_DOCUMENT_STRINGS_ACTION(attr,str) \
+#define HTML_DOCUMENT_STRINGS_ACTION(attr,str) \
error = dom_string_create_interned((const uint8_t *) #str, \
- SLEN(#str), &doc->memoised[hds_##attr]); \
+ SLEN(#str), &doc->memoised[hds_##attr]); \
if (error != DOM_NO_ERR) { \
goto out; \
}
@@ -145,15 +153,38 @@ dom_exception _dom_html_document_initialise(dom_html_document *doc,
#include "html_document_strings.h"
#undef HTML_DOCUMENT_STRINGS_ACTION
+#define DOM_HTML_ELEMENT_STRINGS_ENTRY(tag) \
+ error = dom_string_create_interned((const uint8_t *) #tag, \
+ SLEN(#tag), \
+ &doc->elements[DOM_HTML_ELEMENT_TYPE_##tag]); \
+ if (error != DOM_NO_ERR) { \
+ goto out; \
+ }
+
+#include <dom/html/html_elements.h>
+#undef DOM_HTML_ELEMENT_STRINGS_ENTRY
+
out:
- if (doc->memoised != NULL && error != DOM_NO_ERR) {
- for(sidx = 0; sidx < hds_COUNT; ++sidx) {
- if (doc->memoised[sidx] != NULL) {
- dom_string_unref(doc->memoised[sidx]);
+ if (error != DOM_NO_ERR) {
+ if (doc->memoised != NULL) {
+ for(sidx = 0; sidx < hds_COUNT; ++sidx) {
+ if (doc->memoised[sidx] != NULL) {
+ dom_string_unref(doc->memoised[sidx]);
+ }
}
+ free(doc->memoised);
+ doc->memoised = NULL;
+ }
+ if (doc->elements != NULL) {
+ for(sidx = 0; sidx < DOM_HTML_ELEMENT_TYPE__COUNT;
+ ++sidx) {
+ if (doc->elements[sidx] != NULL) {
+ dom_string_unref(doc->elements[sidx]);
+ }
+ }
+ free(doc->elements);
+ doc->elements = NULL;
}
- free(doc->memoised);
- doc->memoised = NULL;
}
return error;
}
@@ -184,6 +215,16 @@ bool _dom_html_document_finalise(dom_html_document *doc)
doc->memoised = NULL;
}
+ if (doc->elements != NULL) {
+ for(sidx = 0; sidx < DOM_HTML_ELEMENT_TYPE__COUNT; ++sidx) {
+ if (doc->elements[sidx] != NULL) {
+ dom_string_unref(doc->elements[sidx]);
+ }
+ }
+ free(doc->elements);
+ doc->elements = NULL;
+ }
+
return _dom_document_finalise(&doc->base);
}
@@ -222,164 +263,226 @@ _dom_html_document_create_element_internal(dom_html_document *html,
if (exc != DOM_NO_ERR)
return exc;
- if (dom_string_caseless_isequal(tag_name, html->memoised[hds_HTML])) {
+ if (dom_string_caseless_isequal(tag_name,
+ html->elements[DOM_HTML_ELEMENT_TYPE_HTML])) {
exc = _dom_html_html_element_create(html, namespace, prefix,
(dom_html_html_element **) result);
- } else if (dom_string_caseless_isequal(tag_name, html->memoised[hds_HEAD])) {
+ } else if (dom_string_caseless_isequal(tag_name,
+ html->elements[DOM_HTML_ELEMENT_TYPE_HEAD])) {
exc = _dom_html_head_element_create(html, namespace, prefix,
(dom_html_head_element **) result);
- } else if (dom_string_caseless_isequal(tag_name, html->memoised[hds_TITLE])) {
+ } else if (dom_string_caseless_isequal(tag_name,
+ html->elements[DOM_HTML_ELEMENT_TYPE_TITLE])) {
exc = _dom_html_title_element_create(html, namespace, prefix,
(dom_html_title_element **) result);
- } else if (dom_string_caseless_isequal(tag_name, html->memoised[hds_BODY])) {
+ } else if (dom_string_caseless_isequal(tag_name,
+ html->elements[DOM_HTML_ELEMENT_TYPE_BODY])) {
exc = _dom_html_body_element_create(html, namespace, prefix,
(dom_html_body_element **) result);
- } else if (dom_string_caseless_isequal(tag_name, html->memoised[hds_FORM])) {
+ } else if (dom_string_caseless_isequal(tag_name,
+ html->elements[DOM_HTML_ELEMENT_TYPE_FORM])) {
exc = _dom_html_form_element_create(html, namespace, prefix,
(dom_html_form_element **) result);
- } else if (dom_string_caseless_isequal(tag_name, html->memoised[hds_LINK])) {
+ } else if (dom_string_caseless_isequal(tag_name,
+ html->elements[DOM_HTML_ELEMENT_TYPE_LINK])) {
exc = _dom_html_link_element_create(html, namespace, prefix,
(dom_html_link_element **) result);
- } else if (dom_string_caseless_isequal(tag_name, html->memoised[hds_BUTTON])) {
+ } else if (dom_string_caseless_isequal(tag_name,
+ html->elements[DOM_HTML_ELEMENT_TYPE_BUTTON])) {
exc = _dom_html_button_element_create(html, namespace, prefix,
(dom_html_button_element **) result);
- } else if (dom_string_caseless_isequal(tag_name, html->memoised[hds_INPUT])) {
+ } else if (dom_string_caseless_isequal(tag_name,
+ html->elements[DOM_HTML_ELEMENT_TYPE_INPUT])) {
exc = _dom_html_input_element_create(html, namespace, prefix,
(dom_html_input_element **) result);
- } else if (dom_string_caseless_isequal(tag_name, html->memoised[hds_TEXTAREA])) {
+ } else if (dom_string_caseless_isequal(tag_name,
+ html->elements[DOM_HTML_ELEMENT_TYPE_TEXTAREA])) {
exc = _dom_html_text_area_element_create(html, namespace, prefix,
(dom_html_text_area_element **) result);
- } else if (dom_string_caseless_isequal(tag_name, html->memoised[hds_OPTGROUP])) {
+ } else if (dom_string_caseless_isequal(tag_name,
+ html->elements[DOM_HTML_ELEMENT_TYPE_OPTGROUP])) {
exc = _dom_html_opt_group_element_create(html, namespace, prefix,
(dom_html_opt_group_element **) result);
- } else if (dom_string_caseless_isequal(tag_name, html->memoised[hds_OPTION])) {
+ } else if (dom_string_caseless_isequal(tag_name,
+ html->elements[DOM_HTML_ELEMENT_TYPE_OPTION])) {
exc = _dom_html_option_element_create(html, namespace, prefix,
(dom_html_option_element **) result);
- } else if (dom_string_caseless_isequal(tag_name, html->memoised[hds_SELECT])) {
+ } else if (dom_string_caseless_isequal(tag_name,
+ html->elements[DOM_HTML_ELEMENT_TYPE_SELECT])) {
exc = _dom_html_select_element_create(html, namespace, prefix,
(dom_html_select_element **) result);
- } else if (dom_string_caseless_isequal(tag_name, html->memoised[hds_HR])) {
+ } else if (dom_string_caseless_isequal(tag_name,
+ html->elements[DOM_HTML_ELEMENT_TYPE_HR])) {
exc = _dom_html_hr_element_create(html, namespace, prefix,
(dom_html_hr_element **) result);
- } else if (dom_string_caseless_isequal(tag_name, html->memoised[hds_DL])) {
+ } else if (dom_string_caseless_isequal(tag_name,
+ html->elements[DOM_HTML_ELEMENT_TYPE_DL])) {
exc = _dom_html_dlist_element_create(html, namespace, prefix,
(dom_html_dlist_element **) result);
- } else if (dom_string_caseless_isequal(tag_name, html->memoised[hds_DIRECTORY])) {
+ } else if (dom_string_caseless_isequal(tag_name,
+ html->elements[DOM_HTML_ELEMENT_TYPE_DIRECTORY])) {
exc = _dom_html_directory_element_create(html, namespace, prefix,
(dom_html_directory_element **) result);
- } else if (dom_string_caseless_isequal(tag_name, html->memoised[hds_MENU])) {
+ } else if (dom_string_caseless_isequal(tag_name,
+ html->elements[DOM_HTML_ELEMENT_TYPE_MENU])) {
exc = _dom_html_menu_element_create(html, namespace, prefix,
(dom_html_menu_element **) result);
- } else if (dom_string_caseless_isequal(tag_name, html->memoised[hds_FIELDSET])) {
+ } else if (dom_string_caseless_isequal(tag_name,
+ html->elements[DOM_HTML_ELEMENT_TYPE_FIELDSET])) {
exc = _dom_html_field_set_element_create(html, namespace, prefix,
(dom_html_field_set_element **) result);
- } else if (dom_string_caseless_isequal(tag_name, html->memoised[hds_LEGEND])) {
+ } else if (dom_string_caseless_isequal(tag_name,
+ html->elements[DOM_HTML_ELEMENT_TYPE_LEGEND])) {
exc = _dom_html_legend_element_create(html, namespace, prefix,
(dom_html_legend_element **) result);
- } else if (dom_string_caseless_isequal(tag_name, html->memoised[hds_P])) {
+ } else if (dom_string_caseless_isequal(tag_name,
+ html->elements[DOM_HTML_ELEMENT_TYPE_P])) {
exc = _dom_html_paragraph_element_create(html, namespace, prefix,
(dom_html_paragraph_element **) result);
- } else if (dom_string_caseless_isequal(tag_name, html->memoised[hds_H1]) ||
- dom_string_caseless_isequal(tag_name, html->memoised[hds_H2]) ||
- dom_string_caseless_isequal(tag_name, html->memoised[hds_H3]) ||
- dom_string_caseless_isequal(tag_name, html->memoised[hds_H4]) ||
- dom_string_caseless_isequal(tag_name, html->memoised[hds_H5]) ||
- dom_string_caseless_isequal(tag_name, html->memoised[hds_H6])
- ) {
- exc = _dom_html_heading_element_create(html, tag_name, namespace, prefix,
+ } else if (dom_string_caseless_isequal(tag_name,
+ html->elements[DOM_HTML_ELEMENT_TYPE_H1]) ||
+ dom_string_caseless_isequal(tag_name,
+ html->elements[DOM_HTML_ELEMENT_TYPE_H2]) ||
+ dom_string_caseless_isequal(tag_name,
+ html->elements[DOM_HTML_ELEMENT_TYPE_H3]) ||
+ dom_string_caseless_isequal(tag_name,
+ html->elements[DOM_HTML_ELEMENT_TYPE_H4]) ||
+ dom_string_caseless_isequal(tag_name,
+ html->elements[DOM_HTML_ELEMENT_TYPE_H5]) ||
+ dom_string_caseless_isequal(tag_name,
+ html->elements[DOM_HTML_ELEMENT_TYPE_H6])) {
+ exc = _dom_html_heading_element_create(html, tag_name,
+ namespace, prefix,
(dom_html_heading_element **) result);
- } else if (dom_string_caseless_isequal(tag_name, html->memoised[hds_Q])) {
+ } else if (dom_string_caseless_isequal(tag_name,
+ html->elements[DOM_HTML_ELEMENT_TYPE_Q])) {
exc = _dom_html_quote_element_create(html, namespace, prefix,
(dom_html_quote_element **) result);
- } else if (dom_string_caseless_isequal(tag_name, html->memoised[hds_PRE])) {
+ } else if (dom_string_caseless_isequal(tag_name,
+ html->elements[DOM_HTML_ELEMENT_TYPE_PRE])) {
exc = _dom_html_pre_element_create(html, namespace, prefix,
(dom_html_pre_element **) result);
- } else if (dom_string_caseless_isequal(tag_name, html->memoised[hds_BR])) {
+ } else if (dom_string_caseless_isequal(tag_name,
+ html->elements[DOM_HTML_ELEMENT_TYPE_BR])) {
exc = _dom_html_br_element_create(html, namespace, prefix,
(dom_html_br_element **) result);
- } else if (dom_string_caseless_isequal(tag_name, html->memoised[hds_LABEL])) {
+ } else if (dom_string_caseless_isequal(tag_name,
+ html->elements[DOM_HTML_ELEMENT_TYPE_LABEL])) {
exc = _dom_html_label_element_create(html, namespace, prefix,
(dom_html_label_element **) result);
- } else if (dom_string_caseless_isequal(tag_name, html->memoised[hds_UL])) {
+ } else if (dom_string_caseless_isequal(tag_name,
+ html->elements[DOM_HTML_ELEMENT_TYPE_UL])) {
exc = _dom_html_u_list_element_create(html, namespace, prefix,
(dom_html_u_list_element **) result);
- } else if (dom_string_caseless_isequal(tag_name, html->memoised[hds_OL])) {
+ } else if (dom_string_caseless_isequal(tag_name,
+ html->elements[DOM_HTML_ELEMENT_TYPE_OL])) {
exc = _dom_html_olist_element_create(html, namespace, prefix,
(dom_html_olist_element **) result);
- } else if (dom_string_caseless_isequal(tag_name, html->memoised[hds_LI])) {
+ } else if (dom_string_caseless_isequal(tag_name,
+ html->elements[DOM_HTML_ELEMENT_TYPE_LI])) {
exc = _dom_html_li_element_create(html, namespace, prefix,
(dom_html_li_element **) result);
- } else if (dom_string_caseless_isequal(tag_name, html->memoised[hds_FONT])) {
+ } else if (dom_string_caseless_isequal(tag_name,
+ html->elements[DOM_HTML_ELEMENT_TYPE_FONT])) {
exc = _dom_html_font_element_create(html, namespace, prefix,
(dom_html_font_element **) result);
- } else if (dom_string_caseless_isequal(tag_name, html->memoised[hds_DEL]) ||
- dom_string_caseless_isequal(tag_name, html->memoised[hds_INS])) {
+ } else if (dom_string_caseless_isequal(tag_name,
+ html->elements[DOM_HTML_ELEMENT_TYPE_DEL]) ||
+ dom_string_caseless_isequal(tag_name,
+ html->elements[DOM_HTML_ELEMENT_TYPE_INS])) {
exc = _dom_html_mod_element_create(html, tag_name, namespace,
prefix, (dom_html_mod_element **) result);
- } else if (dom_string_caseless_isequal(tag_name, html->memoised[hds_A])) {
+ } else if (dom_string_caseless_isequal(tag_name,
+ html->elements[DOM_HTML_ELEMENT_TYPE_A])) {
exc = _dom_html_anchor_element_create(html, namespace, prefix,
(dom_html_anchor_element **) result);
- } else if (dom_string_caseless_isequal(tag_name, html->memoised[hds_BASEFONT])) {
- exc = _dom_html_base_font_element_create(html, namespace, prefix,
+ } else if (dom_string_caseless_isequal(tag_name,
+ html->elements[DOM_HTML_ELEMENT_TYPE_BASEFONT])) {
+ exc = _dom_html_base_font_element_create(html,
+ namespace, prefix,
(dom_html_base_font_element **) result);
- } else if (dom_string_caseless_isequal(tag_name, html->memoised[hds_IMG])) {
+ } else if (dom_string_caseless_isequal(tag_name,
+ html->elements[DOM_HTML_ELEMENT_TYPE_IMG])) {
exc = _dom_html_image_element_create(html, namespace, prefix,
(dom_html_image_element **) result);
- } else if (dom_string_caseless_isequal(tag_name, html->memoised[hds_OBJECT])) {
+ } else if (dom_string_caseless_isequal(tag_name,
+ html->elements[DOM_HTML_ELEMENT_TYPE_OBJECT])) {
exc = _dom_html_object_element_create(html, namespace, prefix,
(dom_html_object_element **) result);
- } else if (dom_string_caseless_isequal(tag_name, html->memoised[hds_PARAM])) {
+ } else if (dom_string_caseless_isequal(tag_name,
+ html->elements[DOM_HTML_ELEMENT_TYPE_PARAM])) {
exc = _dom_html_param_element_create(html, namespace, prefix,
(dom_html_param_element **) result);
- } else if (dom_string_caseless_isequal(tag_name, html->memoised[hds_APPLET])) {
+ } else if (dom_string_caseless_isequal(tag_name,
+ html->elements[DOM_HTML_ELEMENT_TYPE_APPLET])) {
exc = _dom_html_applet_element_create(html, namespace, prefix,
(dom_html_applet_element **) result);
- } else if (dom_string_caseless_isequal(tag_name, html->memoised[hds_MAP])) {
+ } else if (dom_string_caseless_isequal(tag_name,
+ html->elements[DOM_HTML_ELEMENT_TYPE_MAP])) {
exc = _dom_html_map_element_create(html, namespace, prefix,
(dom_html_map_element **) result);
- } else if (dom_string_caseless_isequal(tag_name, html->memoised[hds_AREA])) {
+ } else if (dom_string_caseless_isequal(tag_name,
+ html->elements[DOM_HTML_ELEMENT_TYPE_AREA])) {
exc = _dom_html_area_element_create(html, namespace, prefix,
(dom_html_area_element **) result);
- } else if (dom_string_caseless_isequal(tag_name, html->memoised[hds_SCRIPT])) {
+ } else if (dom_string_caseless_isequal(tag_name,
+ html->elements[DOM_HTML_ELEMENT_TYPE_SCRIPT])) {
exc = _dom_html_script_element_create(html, namespace, prefix,
(dom_html_script_element **) result);
- } else if (dom_string_caseless_isequal(tag_name, html->memoised[hds_CAPTION])) {
- exc = _dom_html_table_caption_element_create(html, namespace, prefix,
+ } else if (dom_string_caseless_isequal(tag_name,
+ html->elements[DOM_HTML_ELEMENT_TYPE_CAPTION])) {
+ exc = _dom_html_table_caption_element_create(html,
+ namespace, prefix,
(dom_html_table_caption_element **) result);
- } else if (dom_string_caseless_isequal(tag_name, html->memoised[hds_TD]) ||
- dom_string_caseless_isequal(tag_name, html->memoised[hds_TH])
- ) {
- exc = _dom_html_table_cell_element_create(html, tag_name, namespace, prefix,
+ } else if (dom_string_caseless_isequal(tag_name,
+ html->elements[DOM_HTML_ELEMENT_TYPE_TD]) ||
+ dom_string_caseless_isequal(tag_name,
+ html->elements[DOM_HTML_ELEMENT_TYPE_TH])) {
+ exc = _dom_html_table_cell_element_create(html, tag_name,
+ namespace, prefix,
(dom_html_table_cell_element **) result);
- } else if (dom_string_caseless_isequal(tag_name, html->memoised[hds_COL])||
- dom_string_caseless_isequal(tag_name, html->memoised[hds_COLGROUP])
- ) {
- exc = _dom_html_table_col_element_create(html, tag_name, namespace, prefix,
+ } else if (dom_string_caseless_isequal(tag_name,
+ html->elements[DOM_HTML_ELEMENT_TYPE_COL])||
+ dom_string_caseless_isequal(tag_name,
+ html->elements[DOM_HTML_ELEMENT_TYPE_COLGROUP])) {
+ exc = _dom_html_table_col_element_create(html, tag_name,
+ namespace, prefix,
(dom_html_table_col_element **) result);
- } else if (dom_string_caseless_isequal(tag_name, html->memoised[hds_THEAD])||
- dom_string_caseless_isequal(tag_name, html->memoised[hds_TBODY])||
- dom_string_caseless_isequal(tag_name, html->memoised[hds_TFOOT])) {
- exc = _dom_html_table_section_element_create(html, tag_name, namespace, prefix,
+ } else if (dom_string_caseless_isequal(tag_name,
+ html->elements[DOM_HTML_ELEMENT_TYPE_THEAD])||
+ dom_string_caseless_isequal(tag_name,
+ html->elements[DOM_HTML_ELEMENT_TYPE_TBODY])||
+ dom_string_caseless_isequal(tag_name,
+ html->elements[DOM_HTML_ELEMENT_TYPE_TFOOT])) {
+ exc = _dom_html_table_section_element_create(html, tag_name,
+ namespace, prefix,
(dom_html_table_section_element **) result);
- } else if (dom_string_caseless_isequal(tag_name, html->memoised[hds_TABLE])) {
+ } else if (dom_string_caseless_isequal(tag_name,
+ html->elements[DOM_HTML_ELEMENT_TYPE_TABLE])) {
exc = _dom_html_table_element_create(html, namespace, prefix,
(dom_html_table_element **) result);
- } else if (dom_string_caseless_isequal(tag_name, html->memoised[hds_TD])) {
+ } else if (dom_string_caseless_isequal(tag_name,
+ html->elements[DOM_HTML_ELEMENT_TYPE_TD])) {
exc = _dom_html_table_row_element_create(html, namespace, prefix,
(dom_html_table_row_element **) result);
- } else if (dom_string_caseless_isequal(tag_name, html->memoised[hds_STYLE])) {
+ } else if (dom_string_caseless_isequal(tag_name,
+ html->elements[DOM_HTML_ELEMENT_TYPE_STYLE])) {
exc = _dom_html_style_element_create(html,
(dom_html_style_element **) result);
- } else if (dom_string_caseless_isequal(tag_name, html->memoised[hds_FRAMESET])) {
+ } else if (dom_string_caseless_isequal(tag_name,
+ html->elements[DOM_HTML_ELEMENT_TYPE_FRAMESET])) {
exc = _dom_html_frame_set_element_create(html, namespace, prefix,
(dom_html_frame_set_element **) result);
- } else if (dom_string_caseless_isequal(tag_name, html->memoised[hds_FRAME])) {
+ } else if (dom_string_caseless_isequal(tag_name,
+ html->elements[DOM_HTML_ELEMENT_TYPE_FRAME])) {
exc = _dom_html_frame_element_create(html, namespace, prefix,
(dom_html_frame_element **) result);
- } else if (dom_string_caseless_isequal(tag_name, html->memoised[hds_IFRAME])) {
+ } else if (dom_string_caseless_isequal(tag_name,
+ html->elements[DOM_HTML_ELEMENT_TYPE_IFRAME])) {
exc = _dom_html_iframe_element_create(html, namespace, prefix,
(dom_html_iframe_element **) result);
- } else if (dom_string_caseless_isequal(tag_name, html->memoised[hds_ISINDEX])) {
+ } else if (dom_string_caseless_isequal(tag_name,
+ html->elements[DOM_HTML_ELEMENT_TYPE_ISINDEX])) {
exc = _dom_html_isindex_element_create(html, namespace, prefix,
(dom_html_isindex_element **) result);
} else {
@@ -576,8 +679,8 @@ dom_exception _dom_html_document_get_title(dom_html_document *doc,
uint32_t len;
exc = dom_document_get_elements_by_tag_name(doc,
- doc->memoised[hds_TITLE],
- &nodes);
+ doc->elements[DOM_HTML_ELEMENT_TYPE_TITLE],
+ &nodes);
if (exc != DOM_NO_ERR) {
return exc;
}
@@ -654,7 +757,7 @@ dom_exception _dom_html_document_get_body(dom_html_document *doc,
uint32_t len;
exc = dom_document_get_elements_by_tag_name(doc,
- doc->memoised[hds_BODY],
+ doc->elements[DOM_HTML_ELEMENT_TYPE_BODY],
&nodes);
if (exc != DOM_NO_ERR) {
return exc;
@@ -668,7 +771,7 @@ dom_exception _dom_html_document_get_body(dom_html_document *doc,
if (len == 0) {
exc = dom_document_get_elements_by_tag_name(doc,
- doc->memoised[hds_FRAMESET],
+ doc->elements[DOM_HTML_ELEMENT_TYPE_FRAMESET],
&nodes);
if (exc != DOM_NO_ERR) {
return exc;
@@ -713,9 +816,10 @@ dom_exception _dom_html_document_set_body(dom_html_document *doc,
*/
bool images_callback(struct dom_node_internal *node, void *ctx)
{
+ dom_html_document *doc = ctx;
if(node->type == DOM_ELEMENT_NODE &&
dom_string_caseless_isequal(node->name,
- ((dom_html_document *)ctx)->memoised[hds_IMG])) {
+ doc->elements[DOM_HTML_ELEMENT_TYPE_IMG])) {
return true;
}
return false;
@@ -736,9 +840,10 @@ dom_exception _dom_html_document_get_images(dom_html_document *doc,
bool applet_callback(struct dom_node_internal * node, void *ctx)
{
+ dom_html_document *doc = ctx;
if(node->type == DOM_ELEMENT_NODE &&
dom_string_caseless_isequal(node->name,
- ((dom_html_document *)ctx)->memoised[hds_APPLET])) {
+ doc->elements[DOM_HTML_ELEMENT_TYPE_APPLET])) {
return true;
}
return false;
@@ -752,9 +857,10 @@ bool applet_callback(struct dom_node_internal * node, void *ctx)
*/
bool applets_callback(struct dom_node_internal *node, void *ctx)
{
+ dom_html_document *doc = ctx;
if(node->type == DOM_ELEMENT_NODE &&
dom_string_caseless_isequal(node->name,
- ((dom_html_document *)ctx)->memoised[hds_OBJECT])) {
+ doc->elements[DOM_HTML_ELEMENT_TYPE_OBJECT])) {
uint32_t len = 0;
dom_html_collection *applets;
if (_dom_html_collection_create(ctx, node,
@@ -790,17 +896,18 @@ dom_exception _dom_html_document_get_applets(dom_html_document *doc,
*/
bool links_callback(struct dom_node_internal *node, void *ctx)
{
+ dom_html_document *doc = ctx;
if(node->type == DOM_ELEMENT_NODE &&
(dom_string_caseless_isequal(node->name,
- ((dom_html_document *)ctx)->memoised[hds_A]) ||
+ doc->elements[DOM_HTML_ELEMENT_TYPE_A]) ||
dom_string_caseless_isequal(node->name,
- ((dom_html_document *)ctx)->memoised[hds_AREA]))
+ doc->elements[DOM_HTML_ELEMENT_TYPE_AREA]))
) {
bool has_value = false;
dom_exception err;
err = dom_element_has_attribute(node,
- ((dom_html_document *)ctx)->memoised[hds_href], &has_value);
+ doc->memoised[hds_href], &has_value);
if(err !=DOM_NO_ERR)
return err;
@@ -831,7 +938,7 @@ static bool __dom_html_document_node_is_form(dom_node_internal *node,
UNUSED(ctx);
return dom_string_caseless_isequal(node->name,
- doc->memoised[hds_FORM]);
+ doc->elements[DOM_HTML_ELEMENT_TYPE_FORM]);
}
dom_exception _dom_html_document_get_forms(dom_html_document *doc,
@@ -868,14 +975,15 @@ dom_exception _dom_html_document_get_forms(dom_html_document *doc,
*/
bool anchors_callback(struct dom_node_internal *node, void *ctx)
{
+ dom_html_document *doc = ctx;
if(node->type == DOM_ELEMENT_NODE &&
dom_string_caseless_isequal(node->name,
- ((dom_html_document *)ctx)->memoised[hds_A])) {
+ doc->elements[DOM_HTML_ELEMENT_TYPE_A])) {
bool has_value = false;
dom_exception err;
err = dom_element_has_attribute(node,
- ((dom_html_document *)ctx)->memoised[hds_name], &has_value);
+ doc->memoised[hds_name], &has_value);
if(err !=DOM_NO_ERR)
return err;
diff --git a/src/html/html_document.h b/src/html/html_document.h
index c00529b9..dab4dc64 100644
--- a/src/html/html_document.h
+++ b/src/html/html_document.h
@@ -28,6 +28,8 @@ struct dom_html_document {
/** Cached strings for html objects to use */
dom_string **memoised;
+ /** Cached strings for HTML element names */
+ dom_string **elements;
};
#include "html_document_strings.h"
diff --git a/src/html/html_document_strings.h b/src/html/html_document_strings.h
index 35fca73b..8b5fea7c 100644
--- a/src/html/html_document_strings.h
+++ b/src/html/html_document_strings.h
@@ -145,70 +145,6 @@ HTML_DOCUMENT_STRINGS_ACTION1(select)
HTML_DOCUMENT_STRINGS_ACTION1(click)
HTML_DOCUMENT_STRINGS_ACTION1(submit)
HTML_DOCUMENT_STRINGS_ACTION1(reset)
-/* Names for elements which get specialised. */
-HTML_DOCUMENT_STRINGS_ACTION1(HTML)
-HTML_DOCUMENT_STRINGS_ACTION1(HEAD)
-HTML_DOCUMENT_STRINGS_ACTION1(LINK)
-HTML_DOCUMENT_STRINGS_ACTION1(TITLE)
-HTML_DOCUMENT_STRINGS_ACTION1(META)
-HTML_DOCUMENT_STRINGS_ACTION1(BASE)
-HTML_DOCUMENT_STRINGS_ACTION1(ISINDEX)
-HTML_DOCUMENT_STRINGS_ACTION1(STYLE)
-HTML_DOCUMENT_STRINGS_ACTION1(BODY)
-HTML_DOCUMENT_STRINGS_ACTION1(FORM)
-HTML_DOCUMENT_STRINGS_ACTION1(SELECT)
-HTML_DOCUMENT_STRINGS_ACTION1(OPTGROUP)
-HTML_DOCUMENT_STRINGS_ACTION1(OPTION)
-HTML_DOCUMENT_STRINGS_ACTION1(INPUT)
-HTML_DOCUMENT_STRINGS_ACTION1(TEXTAREA)
-HTML_DOCUMENT_STRINGS_ACTION1(BUTTON)
-HTML_DOCUMENT_STRINGS_ACTION1(LABEL)
-HTML_DOCUMENT_STRINGS_ACTION1(FIELDSET)
-HTML_DOCUMENT_STRINGS_ACTION1(LEGEND)
-HTML_DOCUMENT_STRINGS_ACTION1(UL)
-HTML_DOCUMENT_STRINGS_ACTION1(OL)
-HTML_DOCUMENT_STRINGS_ACTION1(DL)
-HTML_DOCUMENT_STRINGS_ACTION1(DIRECTORY)
-HTML_DOCUMENT_STRINGS_ACTION1(MENU)
-HTML_DOCUMENT_STRINGS_ACTION1(LI)
-HTML_DOCUMENT_STRINGS_ACTION1(BLOCKQUOTE)
-HTML_DOCUMENT_STRINGS_ACTION1(DIV)
-HTML_DOCUMENT_STRINGS_ACTION1(P)
-HTML_DOCUMENT_STRINGS_ACTION1(H1)
-HTML_DOCUMENT_STRINGS_ACTION1(H2)
-HTML_DOCUMENT_STRINGS_ACTION1(H3)
-HTML_DOCUMENT_STRINGS_ACTION1(H4)
-HTML_DOCUMENT_STRINGS_ACTION1(H5)
-HTML_DOCUMENT_STRINGS_ACTION1(H6)
-HTML_DOCUMENT_STRINGS_ACTION1(Q)
-HTML_DOCUMENT_STRINGS_ACTION1(PRE)
-HTML_DOCUMENT_STRINGS_ACTION1(BR)
-HTML_DOCUMENT_STRINGS_ACTION1(BASEFONT)
-HTML_DOCUMENT_STRINGS_ACTION1(FONT)
-HTML_DOCUMENT_STRINGS_ACTION1(HR)
-HTML_DOCUMENT_STRINGS_ACTION1(INS)
-HTML_DOCUMENT_STRINGS_ACTION1(DEL)
-HTML_DOCUMENT_STRINGS_ACTION1(A)
-HTML_DOCUMENT_STRINGS_ACTION1(IMG)
-HTML_DOCUMENT_STRINGS_ACTION1(OBJECT)
-HTML_DOCUMENT_STRINGS_ACTION1(PARAM)
-HTML_DOCUMENT_STRINGS_ACTION1(APPLET)
-HTML_DOCUMENT_STRINGS_ACTION1(MAP)
-HTML_DOCUMENT_STRINGS_ACTION1(AREA)
-HTML_DOCUMENT_STRINGS_ACTION1(SCRIPT)
-HTML_DOCUMENT_STRINGS_ACTION1(TABLE)
-HTML_DOCUMENT_STRINGS_ACTION1(CAPTION)
-HTML_DOCUMENT_STRINGS_ACTION1(COL)
-HTML_DOCUMENT_STRINGS_ACTION1(COLGROUP)
-HTML_DOCUMENT_STRINGS_ACTION1(THEAD)
-HTML_DOCUMENT_STRINGS_ACTION1(TFOOT)
-HTML_DOCUMENT_STRINGS_ACTION1(TBODY)
-HTML_DOCUMENT_STRINGS_ACTION1(TR)
-HTML_DOCUMENT_STRINGS_ACTION1(TH)
-HTML_DOCUMENT_STRINGS_ACTION1(TD)
-HTML_DOCUMENT_STRINGS_ACTION1(FRAMESET)
-HTML_DOCUMENT_STRINGS_ACTION1(FRAME)
-HTML_DOCUMENT_STRINGS_ACTION1(IFRAME)
#ifdef HTML_DOCUMENT_STRINGS_SUFFIX
HTML_DOCUMENT_STRINGS_SUFFIX
diff --git a/src/html/html_element.h b/src/html/html_element.h
index e742a1a0..e32b09ec 100644
--- a/src/html/html_element.h
+++ b/src/html/html_element.h
@@ -9,6 +9,7 @@
#define dom_internal_html_element_h_
#include <dom/html/html_element.h>
+#include <dom/html/html_elements.h>
#include "core/element.h"
diff --git a/src/html/html_fieldset_element.c b/src/html/html_fieldset_element.c
index 2ab873e8..15ea812f 100644
--- a/src/html/html_fieldset_element.c
+++ b/src/html/html_fieldset_element.c
@@ -61,8 +61,8 @@ dom_exception _dom_html_field_set_element_initialise(struct dom_html_document *d
struct dom_html_field_set_element *ele)
{
return _dom_html_element_initialise(doc, &ele->base,
- doc->memoised[hds_FIELDSET],
- namespace, prefix);
+ doc->elements[DOM_HTML_ELEMENT_TYPE_FIELDSET],
+ namespace, prefix);
}
/**
@@ -136,7 +136,7 @@ dom_exception dom_html_field_set_element_get_form(
while (form_tmp != NULL) {
if (form_tmp->type == DOM_ELEMENT_NODE &&
dom_string_caseless_isequal(form_tmp->name,
- doc->memoised[hds_FORM]))
+ doc->elements[DOM_HTML_ELEMENT_TYPE_FORM]))
break;
form_tmp = form_tmp->parent;
diff --git a/src/html/html_font_element.c b/src/html/html_font_element.c
index aadcb226..0be7ee57 100644
--- a/src/html/html_font_element.c
+++ b/src/html/html_font_element.c
@@ -61,8 +61,8 @@ dom_exception _dom_html_font_element_initialise(struct dom_html_document *doc,
struct dom_html_font_element *ele)
{
return _dom_html_element_initialise(doc, &ele->base,
- doc->memoised[hds_FONT],
- namespace, prefix);
+ doc->elements[DOM_HTML_ELEMENT_TYPE_FONT],
+ namespace, prefix);
}
/**
diff --git a/src/html/html_form_element.c b/src/html/html_form_element.c
index 0606ba61..ee62c029 100644
--- a/src/html/html_form_element.c
+++ b/src/html/html_form_element.c
@@ -70,8 +70,8 @@ dom_exception _dom_html_form_element_initialise(struct dom_html_document *doc,
dom_exception err;
err = _dom_html_element_initialise(doc, &ele->base,
- doc->memoised[hds_FORM],
- namespace, prefix);
+ doc->elements[DOM_HTML_ELEMENT_TYPE_FORM],
+ namespace, prefix);
return err;
}
@@ -283,16 +283,16 @@ static bool _dom_is_form_control(struct dom_node_internal *node, void *ctx)
/* Form controls are INPUT TEXTAREA SELECT and BUTTON*/
if (dom_string_caseless_isequal(node->name,
- doc->memoised[hds_INPUT]))
+ doc->elements[DOM_HTML_ELEMENT_TYPE_INPUT]))
return ((dom_html_input_element *)node)->form == form;
if (dom_string_caseless_isequal(node->name,
- doc->memoised[hds_TEXTAREA]))
+ doc->elements[DOM_HTML_ELEMENT_TYPE_TEXTAREA]))
return ((dom_html_text_area_element *)node)->form == form;
if (dom_string_caseless_isequal(node->name,
- doc->memoised[hds_SELECT]))
+ doc->elements[DOM_HTML_ELEMENT_TYPE_SELECT]))
return ((dom_html_select_element *)node)->form == form;
if (dom_string_caseless_isequal(node->name,
- doc->memoised[hds_BUTTON])) {
+ doc->elements[DOM_HTML_ELEMENT_TYPE_BUTTON])) {
return ((dom_html_button_element *)node)->form == form;
}
diff --git a/src/html/html_frame_element.c b/src/html/html_frame_element.c
index 9e1ea1e8..b8b0a743 100644
--- a/src/html/html_frame_element.c
+++ b/src/html/html_frame_element.c
@@ -61,8 +61,8 @@ dom_exception _dom_html_frame_element_initialise(struct dom_html_document *doc,
struct dom_html_frame_element *ele)
{
return _dom_html_element_initialise(doc, &ele->base,
- doc->memoised[hds_FRAME],
- namespace, prefix);
+ doc->elements[DOM_HTML_ELEMENT_TYPE_FRAME],
+ namespace, prefix);
}
/**
@@ -97,7 +97,7 @@ dom_exception dom_html_frame_element_get_no_resize(dom_html_frame_element *ele,
bool *no_resize)
{
return dom_html_element_get_bool_property(&ele->base, "noresize",
- SLEN("noresize"), no_resize);
+ SLEN("noresize"), no_resize);
}
/**
@@ -111,7 +111,7 @@ dom_exception dom_html_frame_element_set_no_resize(dom_html_frame_element *ele,
bool no_resize)
{
return dom_html_element_set_bool_property(&ele->base, "noresize",
- SLEN("noresize"), no_resize);
+ SLEN("noresize"), no_resize);
}
/*------------------------------------------------------------------------*/
diff --git a/src/html/html_frameset_element.c b/src/html/html_frameset_element.c
index 871906b9..9d9680bf 100644
--- a/src/html/html_frameset_element.c
+++ b/src/html/html_frameset_element.c
@@ -61,8 +61,8 @@ dom_exception _dom_html_frame_set_element_initialise(struct dom_html_document *d
struct dom_html_frame_set_element *ele)
{
return _dom_html_element_initialise(doc, &ele->base,
- doc->memoised[hds_FRAMESET],
- namespace, prefix);
+ doc->elements[DOM_HTML_ELEMENT_TYPE_FRAMESET],
+ namespace, prefix);
}
/**
diff --git a/src/html/html_head_element.c b/src/html/html_head_element.c
index 00d44762..7082cef7 100644
--- a/src/html/html_head_element.c
+++ b/src/html/html_head_element.c
@@ -57,8 +57,8 @@ dom_exception _dom_html_head_element_initialise(struct dom_html_document *doc,
struct dom_html_head_element *ele)
{
return _dom_html_element_initialise(doc, &ele->base,
- doc->memoised[hds_HEAD],
- namespace, prefix);
+ doc->elements[DOM_HTML_ELEMENT_TYPE_HEAD],
+ namespace, prefix);
}
/**
diff --git a/src/html/html_heading_element.c b/src/html/html_heading_element.c
index ba2842fd..ce298fb4 100644
--- a/src/html/html_heading_element.c
+++ b/src/html/html_heading_element.c
@@ -63,8 +63,7 @@ dom_exception _dom_html_heading_element_initialise(struct dom_html_document *doc
dom_string *prefix, struct dom_html_heading_element *ele)
{
return _dom_html_element_initialise(doc, &ele->base,
- tag_name, namespace,
- prefix);
+ tag_name, namespace, prefix);
}
/**
diff --git a/src/html/html_hr_element.c b/src/html/html_hr_element.c
index eb8aa68a..7ecab7af 100644
--- a/src/html/html_hr_element.c
+++ b/src/html/html_hr_element.c
@@ -61,8 +61,8 @@ dom_exception _dom_html_hr_element_initialise(struct dom_html_document *doc,
struct dom_html_hr_element *ele)
{
return _dom_html_element_initialise(doc, &ele->base,
- doc->memoised[hds_HR],
- namespace, prefix);
+ doc->elements[DOM_HTML_ELEMENT_TYPE_HR],
+ namespace, prefix);
}
/**
diff --git a/src/html/html_html_element.c b/src/html/html_html_element.c
index ee260199..0a91efe2 100644
--- a/src/html/html_html_element.c
+++ b/src/html/html_html_element.c
@@ -28,7 +28,7 @@ static struct dom_element_protected_vtable _protect_vtable = {
* \return DOM_NO_ERR on success, appropriate dom_exception on failure.
*/
dom_exception _dom_html_html_element_create(struct dom_html_document *doc,
- dom_string *namespace, dom_string *prefix,
+ dom_string *namespace, dom_string *prefix,
struct dom_html_html_element **ele)
{
struct dom_node_internal *node;
@@ -53,11 +53,12 @@ dom_exception _dom_html_html_element_create(struct dom_html_document *doc,
* \return DOM_NO_ERR on success, appropriate dom_exception on failure.
*/
dom_exception _dom_html_html_element_initialise(struct dom_html_document *doc,
- dom_string *namespace, dom_string *prefix,
+ dom_string *namespace, dom_string *prefix,
struct dom_html_html_element *ele)
{
return _dom_html_element_initialise(doc, &ele->base,
- doc->memoised[hds_HTML], namespace, prefix);
+ doc->elements[DOM_HTML_ELEMENT_TYPE_HTML],
+ namespace, prefix);
}
/**
diff --git a/src/html/html_iframe_element.c b/src/html/html_iframe_element.c
index 41a30d93..80b39a7d 100644
--- a/src/html/html_iframe_element.c
+++ b/src/html/html_iframe_element.c
@@ -46,7 +46,8 @@ dom_exception _dom_html_iframe_element_create(struct dom_html_document *doc,
node->base.vtable = &_dom_html_element_vtable;
node->vtable = &_protect_vtable;
- return _dom_html_iframe_element_initialise(doc, namespace, prefix, *ele);
+ return _dom_html_iframe_element_initialise(doc,
+ namespace, prefix, *ele);
}
/**
@@ -61,8 +62,8 @@ dom_exception _dom_html_iframe_element_initialise(struct dom_html_document *doc,
struct dom_html_iframe_element *ele)
{
return _dom_html_element_initialise(doc, &ele->base,
- doc->memoised[hds_IFRAME],
- namespace, prefix);
+ doc->elements[DOM_HTML_ELEMENT_TYPE_IFRAME],
+ namespace, prefix);
}
/**
diff --git a/src/html/html_image_element.c b/src/html/html_image_element.c
index fe20cfad..4c5a5f37 100644
--- a/src/html/html_image_element.c
+++ b/src/html/html_image_element.c
@@ -62,8 +62,8 @@ dom_exception _dom_html_image_element_initialise(struct dom_html_document *doc,
struct dom_html_image_element *ele)
{
return _dom_html_element_initialise(doc, &ele->base,
- doc->memoised[hds_IMG],
- namespace, prefix);
+ doc->elements[DOM_HTML_ELEMENT_TYPE_IMG],
+ namespace, prefix);
}
/**
diff --git a/src/html/html_input_element.c b/src/html/html_input_element.c
index bbea0875..a90ec40d 100644
--- a/src/html/html_input_element.c
+++ b/src/html/html_input_element.c
@@ -69,8 +69,8 @@ dom_exception _dom_html_input_element_initialise(struct dom_html_document *doc,
ele->checked_set = false;
return _dom_html_element_initialise(doc, &ele->base,
- doc->memoised[hds_INPUT],
- namespace, prefix);
+ doc->elements[DOM_HTML_ELEMENT_TYPE_INPUT],
+ namespace, prefix);
}
/**
diff --git a/src/html/html_isindex_element.c b/src/html/html_isindex_element.c
index e79e0119..51611b32 100644
--- a/src/html/html_isindex_element.c
+++ b/src/html/html_isindex_element.c
@@ -59,8 +59,8 @@ dom_exception _dom_html_isindex_element_initialise(struct dom_html_document *doc
struct dom_html_isindex_element *ele)
{
return _dom_html_element_initialise(doc, &ele->base,
- doc->memoised[hds_ISINDEX],
- namespace, prefix);
+ doc->elements[DOM_HTML_ELEMENT_TYPE_ISINDEX],
+ namespace, prefix);
}
/**
diff --git a/src/html/html_label_element.c b/src/html/html_label_element.c
index c3a522f6..23038921 100644
--- a/src/html/html_label_element.c
+++ b/src/html/html_label_element.c
@@ -59,7 +59,7 @@ dom_exception _dom_html_label_element_initialise(struct dom_html_document *doc,
struct dom_html_label_element *ele)
{
return _dom_html_element_initialise(doc, &ele->base,
- doc->memoised[hds_LABEL],
+ doc->elements[DOM_HTML_ELEMENT_TYPE_LABEL],
namespace, prefix);
}
@@ -133,7 +133,7 @@ dom_exception dom_html_label_element_get_form(
while (form_tmp != NULL) {
if (form_tmp->type == DOM_ELEMENT_NODE &&
dom_string_caseless_isequal(form_tmp->name,
- doc->memoised[hds_FORM]))
+ doc->elements[DOM_HTML_ELEMENT_TYPE_FORM]))
break;
form_tmp = form_tmp->parent;
diff --git a/src/html/html_legend_element.c b/src/html/html_legend_element.c
index 2d0e939e..1f297e2d 100644
--- a/src/html/html_legend_element.c
+++ b/src/html/html_legend_element.c
@@ -63,8 +63,8 @@ dom_exception _dom_html_legend_element_initialise(struct dom_html_document *doc,
struct dom_html_legend_element *ele)
{
return _dom_html_element_initialise(doc, &ele->base,
- doc->memoised[hds_LEGEND],
- namespace, prefix);
+ doc->elements[DOM_HTML_ELEMENT_TYPE_LEGEND],
+ namespace, prefix);
}
/**
@@ -106,7 +106,7 @@ dom_exception dom_html_legend_element_get_form(
while (field_set != NULL) {
if (field_set->type == DOM_ELEMENT_NODE &&
dom_string_caseless_isequal(field_set->name,
- doc->memoised[hds_FIELDSET]))
+ doc->elements[DOM_HTML_ELEMENT_TYPE_FIELDSET]))
break;
field_set = field_set->parent;
diff --git a/src/html/html_li_element.c b/src/html/html_li_element.c
index 7dd1d5b5..f2c560ea 100644
--- a/src/html/html_li_element.c
+++ b/src/html/html_li_element.c
@@ -61,8 +61,8 @@ dom_exception _dom_html_li_element_initialise(struct dom_html_document *doc,
struct dom_html_li_element *ele)
{
return _dom_html_element_initialise(doc, &ele->base,
- doc->memoised[hds_LI],
- namespace, lifix);
+ doc->elements[DOM_HTML_ELEMENT_TYPE_LI],
+ namespace, lifix);
}
/**
diff --git a/src/html/html_link_element.c b/src/html/html_link_element.c
index 7ed026df..8022a7be 100644
--- a/src/html/html_link_element.c
+++ b/src/html/html_link_element.c
@@ -59,8 +59,8 @@ dom_exception _dom_html_link_element_initialise(struct dom_html_document *doc,
struct dom_html_link_element *ele)
{
return _dom_html_element_initialise(doc, &ele->base,
- doc->memoised[hds_LINK],
- namespace, prefix);
+ doc->elements[DOM_HTML_ELEMENT_TYPE_LINK],
+ namespace, prefix);
}
/**
diff --git a/src/html/html_map_element.c b/src/html/html_map_element.c
index cf0fe5e2..d20c3ce7 100644
--- a/src/html/html_map_element.c
+++ b/src/html/html_map_element.c
@@ -63,8 +63,8 @@ dom_exception _dom_html_map_element_initialise(struct dom_html_document *doc,
struct dom_html_map_element *ele)
{
return _dom_html_element_initialise(doc, &ele->base,
- doc->memoised[hds_MAP],
- namespace, prefix);
+ doc->elements[DOM_HTML_ELEMENT_TYPE_MAP],
+ namespace, prefix);
}
/**
@@ -163,11 +163,11 @@ dom_exception dom_html_map_element_set_##attr( \
SIMPLE_GET_SET(name);
/* The callback function for _dom_html_collection_create*/
-bool callback(struct dom_node_internal *node, void *ctx)
+bool callback(struct dom_node_internal *node, void *ctx)
{
if(node->type == DOM_ELEMENT_NODE &&
dom_string_caseless_isequal(node->name,
- ((dom_html_document *)ctx)->memoised[hds_AREA]))
+ ((dom_html_document *)ctx)->elements[DOM_HTML_ELEMENT_TYPE_AREA]))
{
return true;
}
diff --git a/src/html/html_menu_element.c b/src/html/html_menu_element.c
index af0f34c7..aadd8232 100644
--- a/src/html/html_menu_element.c
+++ b/src/html/html_menu_element.c
@@ -61,8 +61,8 @@ dom_exception _dom_html_menu_element_initialise(struct dom_html_document *doc,
struct dom_html_menu_element *ele)
{
return _dom_html_element_initialise(doc, &ele->base,
- doc->memoised[hds_MENU],
- namespace, prefix);
+ doc->elements[DOM_HTML_ELEMENT_TYPE_MENU],
+ namespace, prefix);
}
/**
diff --git a/src/html/html_meta_element.c b/src/html/html_meta_element.c
index 924a64d1..05e6a4f0 100644
--- a/src/html/html_meta_element.c
+++ b/src/html/html_meta_element.c
@@ -57,8 +57,8 @@ dom_exception _dom_html_meta_element_initialise(struct dom_html_document *doc,
struct dom_html_meta_element *ele)
{
return _dom_html_element_initialise(doc, &ele->base,
- doc->memoised[hds_META],
- namespace, prefix);
+ doc->elements[DOM_HTML_ELEMENT_TYPE_META],
+ namespace, prefix);
}
/**
diff --git a/src/html/html_mod_element.c b/src/html/html_mod_element.c
index f20a994d..20f80d14 100644
--- a/src/html/html_mod_element.c
+++ b/src/html/html_mod_element.c
@@ -61,8 +61,7 @@ dom_exception _dom_html_mod_element_initialise(struct dom_html_document *doc,
dom_string *prefix, struct dom_html_mod_element *ele)
{
return _dom_html_element_initialise(doc, &ele->base,
- tag_name,
- namespace, prefix);
+ tag_name, namespace, prefix);
}
/**
diff --git a/src/html/html_object_element.c b/src/html/html_object_element.c
index 1568630a..27d3f5a8 100644
--- a/src/html/html_object_element.c
+++ b/src/html/html_object_element.c
@@ -64,7 +64,7 @@ dom_exception _dom_html_object_element_initialise(struct dom_html_document *doc,
struct dom_html_object_element *ele)
{
return _dom_html_element_initialise(doc, &ele->base,
- doc->memoised[hds_OBJECT],
+ doc->elements[DOM_HTML_ELEMENT_TYPE_OBJECT],
namespace, prefix);
}
@@ -240,7 +240,7 @@ dom_exception dom_html_object_element_get_form(
while (form_tmp != NULL) {
if (form_tmp->type == DOM_ELEMENT_NODE &&
dom_string_caseless_isequal(form_tmp->name,
- doc->memoised[hds_FORM]))
+ doc->elements[DOM_HTML_ELEMENT_TYPE_FORM]))
break;
form_tmp = form_tmp->parent;
diff --git a/src/html/html_olist_element.c b/src/html/html_olist_element.c
index 30465532..6595ea5a 100644
--- a/src/html/html_olist_element.c
+++ b/src/html/html_olist_element.c
@@ -61,8 +61,8 @@ dom_exception _dom_html_olist_element_initialise(struct dom_html_document *doc,
struct dom_html_olist_element *ele)
{
return _dom_html_element_initialise(doc, &ele->base,
- doc->memoised[hds_OL],
- namespace, o_listfix);
+ doc->elements[DOM_HTML_ELEMENT_TYPE_OL],
+ namespace, o_listfix);
}
/**
diff --git a/src/html/html_opt_group_element.c b/src/html/html_opt_group_element.c
index cb0c2071..cdee6e70 100644
--- a/src/html/html_opt_group_element.c
+++ b/src/html/html_opt_group_element.c
@@ -61,8 +61,8 @@ dom_exception _dom_html_opt_group_element_initialise(struct dom_html_document *d
struct dom_html_opt_group_element *ele)
{
return _dom_html_element_initialise(doc, &ele->base,
- doc->memoised[hds_OPTGROUP],
- namespace, prefix);
+ doc->elements[DOM_HTML_ELEMENT_TYPE_OPTGROUP],
+ namespace, prefix);
}
/**
diff --git a/src/html/html_option_element.c b/src/html/html_option_element.c
index b777c5fa..e3525626 100644
--- a/src/html/html_option_element.c
+++ b/src/html/html_option_element.c
@@ -66,8 +66,8 @@ dom_exception _dom_html_option_element_initialise(struct dom_html_document *doc,
ele->default_selected_set = false;
return _dom_html_element_initialise(doc, &ele->base,
- doc->memoised[hds_OPTION],
- namespace, prefix);
+ doc->elements[DOM_HTML_ELEMENT_TYPE_OPTION],
+ namespace, prefix);
}
/**
@@ -106,7 +106,7 @@ dom_exception dom_html_option_element_get_form(
while (select != NULL) {
if (select->type == DOM_ELEMENT_NODE &&
dom_string_caseless_isequal(select->name,
- doc->memoised[hds_SELECT]))
+ doc->elements[DOM_HTML_ELEMENT_TYPE_SELECT]))
break;
select = select->parent;
@@ -265,7 +265,7 @@ dom_exception dom_html_option_element_get_index(
if((dom_node_internal *)option == n) {
*index = idx;
break;
- } else if(dom_string_caseless_isequal(n->name,doc->memoised[hds_OPTION])) {
+ } else if(dom_string_caseless_isequal(n->name,doc->elements[DOM_HTML_ELEMENT_TYPE_OPTION])) {
idx += 1;
}
}
diff --git a/src/html/html_options_collection.c b/src/html/html_options_collection.c
index 3e06915b..8f6f4c4b 100644
--- a/src/html/html_options_collection.c
+++ b/src/html/html_options_collection.c
@@ -41,7 +41,7 @@ dom_exception _dom_html_options_collection_create(struct dom_html_document *doc,
return DOM_NO_MEM_ERR;
return _dom_html_options_collection_initialise(doc, *col, root,
- ic, ctx);
+ ic, ctx);
}
/**
diff --git a/src/html/html_paragraph_element.c b/src/html/html_paragraph_element.c
index 20a6c284..63c50b25 100644
--- a/src/html/html_paragraph_element.c
+++ b/src/html/html_paragraph_element.c
@@ -61,8 +61,8 @@ dom_exception _dom_html_paragraph_element_initialise(struct dom_html_document *d
struct dom_html_paragraph_element *ele)
{
return _dom_html_element_initialise(doc, &ele->base,
- doc->memoised[hds_P],
- namespace, prefix);
+ doc->elements[DOM_HTML_ELEMENT_TYPE_P],
+ namespace, prefix);
}
/**
diff --git a/src/html/html_param_element.c b/src/html/html_param_element.c
index 6bda0152..a8587174 100644
--- a/src/html/html_param_element.c
+++ b/src/html/html_param_element.c
@@ -61,8 +61,8 @@ dom_exception _dom_html_param_element_initialise(struct dom_html_document *doc,
struct dom_html_param_element *ele)
{
return _dom_html_element_initialise(doc, &ele->base,
- doc->memoised[hds_PARAM],
- namespace, prefix);
+ doc->elements[DOM_HTML_ELEMENT_TYPE_PARAM],
+ namespace, prefix);
}
/**
diff --git a/src/html/html_pre_element.c b/src/html/html_pre_element.c
index 8f564c27..c5f7ced2 100644
--- a/src/html/html_pre_element.c
+++ b/src/html/html_pre_element.c
@@ -61,8 +61,8 @@ dom_exception _dom_html_pre_element_initialise(struct dom_html_document *doc,
struct dom_html_pre_element *ele)
{
return _dom_html_element_initialise(doc, &ele->base,
- doc->memoised[hds_PRE],
- namespace, prefix);
+ doc->elements[DOM_HTML_ELEMENT_TYPE_PRE],
+ namespace, prefix);
}
/**
diff --git a/src/html/html_quote_element.c b/src/html/html_quote_element.c
index d16bad81..988ef5b8 100644
--- a/src/html/html_quote_element.c
+++ b/src/html/html_quote_element.c
@@ -61,8 +61,8 @@ dom_exception _dom_html_quote_element_initialise(struct dom_html_document *doc,
struct dom_html_quote_element *ele)
{
return _dom_html_element_initialise(doc, &ele->base,
- doc->memoised[hds_Q],
- namespace, prefix);
+ doc->elements[DOM_HTML_ELEMENT_TYPE_Q],
+ namespace, prefix);
}
/**
diff --git a/src/html/html_script_element.c b/src/html/html_script_element.c
index e0038f57..3bdf8cd7 100644
--- a/src/html/html_script_element.c
+++ b/src/html/html_script_element.c
@@ -61,8 +61,8 @@ dom_exception _dom_html_script_element_initialise(struct dom_html_document *doc,
struct dom_html_script_element *ele)
{
return _dom_html_element_initialise(doc, &ele->base,
- doc->memoised[hds_SCRIPT],
- namespace, prefix);
+ doc->elements[DOM_HTML_ELEMENT_TYPE_SCRIPT],
+ namespace, prefix);
}
/**
diff --git a/src/html/html_select_element.c b/src/html/html_select_element.c
index 3d199bb7..438a365e 100644
--- a/src/html/html_select_element.c
+++ b/src/html/html_select_element.c
@@ -65,7 +65,7 @@ dom_exception _dom_html_select_element_initialise(struct dom_html_document *doc,
ele->form = NULL;
return _dom_html_element_initialise(doc, &ele->base,
- doc->memoised[hds_SELECT],
+ doc->elements[DOM_HTML_ELEMENT_TYPE_SELECT],
namespace, prefix);
}
@@ -695,7 +695,8 @@ bool is_option(struct dom_node_internal *node, void *ctx)
dom_html_select_element *ele = ctx;
dom_html_document *doc = (dom_html_document *) dom_node_get_owner(ele);
- if (dom_string_isequal(node->name, doc->memoised[hds_OPTION]))
+ if (dom_string_isequal(node->name,
+ doc->elements[DOM_HTML_ELEMENT_TYPE_OPTION]))
return true;
return false;
diff --git a/src/html/html_table_element.c b/src/html/html_table_element.c
index d387e8d8..cdf1714f 100644
--- a/src/html/html_table_element.c
+++ b/src/html/html_table_element.c
@@ -65,7 +65,7 @@ dom_exception _dom_html_table_element_initialise(struct dom_html_document *doc,
struct dom_html_table_element *ele)
{
return _dom_html_element_initialise(doc, &ele->base,
- doc->memoised[hds_TABLE],
+ doc->elements[DOM_HTML_ELEMENT_TYPE_TABLE],
namespace, prefix);
}
@@ -183,7 +183,9 @@ dom_exception dom_html_table_element_get_caption(
for (node_tmp = node_tmp->first_child; node_tmp != NULL; node_tmp = node_tmp->next) {
if((node_tmp->type == DOM_ELEMENT_NODE) &&
- dom_string_caseless_isequal(doc->memoised[hds_CAPTION],node_tmp->name)) {
+ dom_string_caseless_isequal(
+ doc->elements[DOM_HTML_ELEMENT_TYPE_CAPTION],
+ node_tmp->name)) {
break;
}
}
@@ -212,8 +214,9 @@ dom_exception dom_html_table_element_set_caption(
if (check_node == NULL) {
return DOM_HIERARCHY_REQUEST_ERR;
}
- if (!dom_string_caseless_isequal(doc->memoised[hds_CAPTION],
- check_node->name)) {
+ if (!dom_string_caseless_isequal(
+ doc->elements[DOM_HTML_ELEMENT_TYPE_CAPTION],
+ check_node->name)) {
return DOM_HIERARCHY_REQUEST_ERR;
}
@@ -239,7 +242,9 @@ dom_exception dom_html_table_element_get_t_head(
for (node_tmp = node_tmp->first_child; node_tmp != NULL; node_tmp = node_tmp->next) {
if((node_tmp->type == DOM_ELEMENT_NODE) &&
- dom_string_caseless_isequal(doc->memoised[hds_THEAD],node_tmp->name)) {
+ dom_string_caseless_isequal(
+ doc->elements[DOM_HTML_ELEMENT_TYPE_THEAD],
+ node_tmp->name)) {
break;
}
}
@@ -267,7 +272,9 @@ dom_exception dom_html_table_element_set_t_head(
if (check_node == NULL) {
return DOM_HIERARCHY_REQUEST_ERR;
}
- if (!dom_string_caseless_isequal(doc->memoised[hds_CAPTION],check_node->name)) {
+ if (!dom_string_caseless_isequal(
+ doc->elements[DOM_HTML_ELEMENT_TYPE_CAPTION],
+ check_node->name)) {
return DOM_HIERARCHY_REQUEST_ERR;
}
@@ -293,8 +300,9 @@ dom_exception dom_html_table_element_get_t_foot(
for (node_tmp = node_tmp->first_child; node_tmp != NULL; node_tmp = node_tmp->next) {
if ((node_tmp->type == DOM_ELEMENT_NODE) &&
- dom_string_caseless_isequal(doc->memoised[hds_TFOOT],
- node_tmp->name)) {
+ dom_string_caseless_isequal(
+ doc->elements[DOM_HTML_ELEMENT_TYPE_TFOOT],
+ node_tmp->name)) {
break;
}
}
@@ -323,7 +331,9 @@ dom_exception dom_html_table_element_set_t_foot(
return DOM_HIERARCHY_REQUEST_ERR;
}
- if(!dom_string_caseless_isequal(doc->memoised[hds_TFOOT],check_node->name)) {
+ if(!dom_string_caseless_isequal(
+ doc->elements[DOM_HTML_ELEMENT_TYPE_TFOOT],
+ check_node->name)) {
return DOM_HIERARCHY_REQUEST_ERR;
}
@@ -345,9 +355,10 @@ dom_exception dom_html_table_element_set_t_foot(
*/
bool table_rows_callback(struct dom_node_internal *node, void *ctx)
{
+ dom_html_document *doc = ctx;
if(node->type == DOM_ELEMENT_NODE &&
dom_string_caseless_isequal(node->name,
- ((dom_html_document *)ctx)->memoised[hds_TR])) {
+ doc->elements[DOM_HTML_ELEMENT_TYPE_TR])) {
return true;
}
return false;
@@ -378,9 +389,10 @@ dom_exception dom_html_table_element_get_rows(
*/
bool table_t_bodies_callback(struct dom_node_internal *node, void *ctx)
{
+ dom_html_document *doc = ctx;
if(node->type == DOM_ELEMENT_NODE &&
dom_string_caseless_isequal(node->name,
- ((dom_html_document *)ctx)->memoised[hds_TBODY])) {
+ doc->elements[DOM_HTML_ELEMENT_TYPE_TBODY])) {
return true;
}
return false;
@@ -492,7 +504,7 @@ dom_exception dom_html_table_element_create_t_foot(
dom_node *new_t_foot;
exp = _dom_html_table_section_element_create(doc,
- doc->memoised[hds_TFOOT],
+ doc->elements[DOM_HTML_ELEMENT_TYPE_TFOOT],
((dom_node_internal *)element)->namespace,
((dom_node_internal *)element)->prefix,
(dom_html_table_section_element **)t_foot);
@@ -565,7 +577,7 @@ dom_exception dom_html_table_element_create_t_head(
dom_node *new_t_head;
exp = _dom_html_table_section_element_create(doc,
- doc->memoised[hds_THEAD],
+ doc->elements[DOM_HTML_ELEMENT_TYPE_THEAD],
((dom_node_internal *)element)->namespace,
((dom_node_internal *)element)->prefix,
(dom_html_table_section_element **)t_head);
@@ -643,7 +655,7 @@ dom_exception dom_html_table_element_create_t_body(
dom_node *new_t_body;
exp = _dom_html_table_section_element_create(doc,
- doc->memoised[hds_TBODY],
+ doc->elements[DOM_HTML_ELEMENT_TYPE_TBODY],
((dom_node_internal *)element)->namespace,
((dom_node_internal *)element)->prefix,
t_body);
@@ -768,7 +780,9 @@ dom_exception dom_html_table_element_insert_row(
for (n = n->first_child; n != NULL; n = n->next) {
if((n->type == DOM_ELEMENT_NODE) &&
- dom_string_caseless_isequal(doc->memoised[hds_TBODY],n->name)) {
+ dom_string_caseless_isequal(
+ doc->elements[DOM_HTML_ELEMENT_TYPE_TBODY],
+ n->name)) {
exp = dom_html_table_section_element_get_rows((dom_html_table_section_element *)n, &rows);
exp = dom_html_collection_get_length(rows, &section_len);
@@ -881,7 +895,9 @@ dom_exception dom_html_table_element_delete_row(
for (n = n->first_child; n != NULL; n = n->next) {
if((n->type == DOM_ELEMENT_NODE) &&
- dom_string_caseless_isequal(doc->memoised[hds_TBODY],n->name)) {
+ dom_string_caseless_isequal(
+ doc->elements[DOM_HTML_ELEMENT_TYPE_TBODY],
+ n->name)) {
exp = dom_html_table_section_element_get_rows
((dom_html_table_section_element *)n, &rows);
if(exp != DOM_NO_ERR) {
diff --git a/src/html/html_tablecaption_element.c b/src/html/html_tablecaption_element.c
index d2c3fc65..ddb2d5cd 100644
--- a/src/html/html_tablecaption_element.c
+++ b/src/html/html_tablecaption_element.c
@@ -61,8 +61,8 @@ dom_exception _dom_html_table_caption_element_initialise(struct dom_html_documen
struct dom_html_table_caption_element *ele)
{
return _dom_html_element_initialise(doc, &ele->base,
- doc->memoised[hds_CAPTION],
- namespace, prefix);
+ doc->elements[DOM_HTML_ELEMENT_TYPE_CAPTION],
+ namespace, prefix);
}
/**
diff --git a/src/html/html_tablecell_element.c b/src/html/html_tablecell_element.c
index 796bbc9a..c881440f 100644
--- a/src/html/html_tablecell_element.c
+++ b/src/html/html_tablecell_element.c
@@ -47,7 +47,8 @@ dom_exception _dom_html_table_cell_element_create(struct dom_html_document *doc,
node->base.vtable = &_dom_html_element_vtable;
node->vtable = &_protect_vtable;
- return _dom_html_table_cell_element_initialise(doc, tag_name, namespace, prefix, *ele);
+ return _dom_html_table_cell_element_initialise(doc, tag_name,
+ namespace, prefix, *ele);
}
/**
@@ -185,7 +186,9 @@ dom_exception dom_html_table_cell_element_get_cell_index(
int32_t cnt = 0;
dom_node_internal *root;
while(n != NULL) {
- if(dom_string_caseless_isequal(doc->memoised[hds_TR],n->name)) {
+ if(dom_string_caseless_isequal(
+ doc->elements[DOM_HTML_ELEMENT_TYPE_TR],
+ n->name)) {
break;
}
n = n->parent;
@@ -195,8 +198,12 @@ dom_exception dom_html_table_cell_element_get_cell_index(
if(n == (dom_node_internal *)table_cell) {
break;
} else if((n->type == DOM_ELEMENT_NODE) &&
- (dom_string_caseless_isequal(doc->memoised[hds_TD],n->name) ||
- dom_string_caseless_isequal(doc->memoised[hds_TH],n->name))) {
+ (dom_string_caseless_isequal(
+ doc->elements[DOM_HTML_ELEMENT_TYPE_TD],
+ n->name) ||
+ dom_string_caseless_isequal(
+ doc->elements[DOM_HTML_ELEMENT_TYPE_TH],
+ n->name))) {
cnt += 1;
}
if(n->first_child != NULL) {
@@ -233,8 +240,8 @@ dom_exception dom_html_table_cell_element_get_cell_index(
dom_exception dom_html_table_cell_element_get_col_span(
dom_html_table_cell_element *table_cell, dom_ulong *col_span)
{
- return dom_html_element_get_dom_ulong_property(&table_cell->base, "colspan",
- SLEN("colspan"), col_span);
+ return dom_html_element_get_dom_ulong_property(&table_cell->base,
+ "colspan", SLEN("colspan"), col_span);
}
/**
@@ -247,8 +254,8 @@ dom_exception dom_html_table_cell_element_get_col_span(
dom_exception dom_html_table_cell_element_set_col_span(
dom_html_table_cell_element *table_cell, dom_ulong col_span)
{
- return dom_html_element_set_dom_ulong_property(&table_cell->base, "colspan",
- SLEN("colspan"), col_span);
+ return dom_html_element_set_dom_ulong_property(&table_cell->base,
+ "colspan", SLEN("colspan"), col_span);
}
/**
@@ -261,8 +268,8 @@ dom_exception dom_html_table_cell_element_set_col_span(
dom_exception dom_html_table_cell_element_get_row_span(
dom_html_table_cell_element *table_cell, dom_ulong *row_span)
{
- return dom_html_element_get_dom_ulong_property(&table_cell->base, "rowspan",
- SLEN("rowspan"), row_span);
+ return dom_html_element_get_dom_ulong_property(&table_cell->base,
+ "rowspan", SLEN("rowspan"), row_span);
}
/**
@@ -275,8 +282,8 @@ dom_exception dom_html_table_cell_element_get_row_span(
dom_exception dom_html_table_cell_element_set_row_span(
dom_html_table_cell_element *table_cell, dom_ulong row_span)
{
- return dom_html_element_set_dom_ulong_property(&table_cell->base, "rowspan",
- SLEN("rowspan"), row_span);
+ return dom_html_element_set_dom_ulong_property(&table_cell->base,
+ "rowspan", SLEN("rowspan"), row_span);
}
/**
diff --git a/src/html/html_tablecol_element.c b/src/html/html_tablecol_element.c
index cf21a249..d3d985b1 100644
--- a/src/html/html_tablecol_element.c
+++ b/src/html/html_tablecol_element.c
@@ -46,7 +46,8 @@ dom_exception _dom_html_table_col_element_create(struct dom_html_document *doc,
node->base.vtable = &_dom_html_element_vtable;
node->vtable = &_protect_vtable;
- return _dom_html_table_col_element_initialise(doc, tag_name, namespace, prefix, *ele);
+ return _dom_html_table_col_element_initialise(doc, tag_name,
+ namespace, prefix, *ele);
}
/**
@@ -61,8 +62,7 @@ dom_exception _dom_html_table_col_element_initialise(struct dom_html_document *d
struct dom_html_table_col_element *ele)
{
return _dom_html_element_initialise(doc, &ele->base,
- tag_name,
- namespace, prefix);
+ tag_name, namespace, prefix);
}
/**
diff --git a/src/html/html_tablerow_element.c b/src/html/html_tablerow_element.c
index e4d35143..0a0fb1e5 100644
--- a/src/html/html_tablerow_element.c
+++ b/src/html/html_tablerow_element.c
@@ -49,7 +49,8 @@ dom_exception _dom_html_table_row_element_create(struct dom_html_document *doc,
node->base.vtable = &_dom_html_element_vtable;
node->vtable = &_protect_vtable;
- return _dom_html_table_row_element_initialise(doc, namespace, prefix, *ele);
+ return _dom_html_table_row_element_initialise(doc,
+ namespace, prefix, *ele);
}
/**
@@ -64,7 +65,7 @@ dom_exception _dom_html_table_row_element_initialise(struct dom_html_document *d
struct dom_html_table_row_element *ele)
{
return _dom_html_element_initialise(doc, &ele->base,
- doc->memoised[hds_TR],
+ doc->elements[DOM_HTML_ELEMENT_TYPE_TR],
namespace, prefix);
}
@@ -185,21 +186,26 @@ dom_exception dom_html_table_row_element_get_row_index(
uint32_t count = 0;
- for(n = n->first_child; n != (dom_node_internal *)table_row;
+ for (n = n->first_child; n != (dom_node_internal *)table_row;
n = n->next) {
- if(n->type == DOM_ELEMENT_NODE &&
- dom_string_caseless_isequal(n->name,doc->memoised[hds_TR])) {
+ if(n->type == DOM_ELEMENT_NODE &&
+ dom_string_caseless_isequal(n->name,
+ doc->elements[DOM_HTML_ELEMENT_TYPE_TR])) {
count += 1;
- }
+ }
}
- if(dom_string_caseless_isequal((parent->parent)->name, doc->memoised[hds_TABLE]) &&
- dom_string_caseless_isequal(parent->name, doc->memoised[hds_THEAD])
- ) {
+ if (dom_string_caseless_isequal((parent->parent)->name,
+ doc->elements[DOM_HTML_ELEMENT_TYPE_TABLE]) &&
+ dom_string_caseless_isequal(parent->name,
+ doc->elements[DOM_HTML_ELEMENT_TYPE_THEAD])) {
*row_index = count;
- }else if(dom_string_caseless_isequal((parent->parent)->name, doc->memoised[hds_TABLE]) &&
- (dom_string_caseless_isequal(parent->name, doc->memoised[hds_TBODY]) ||
- dom_string_caseless_isequal(parent->name, doc->memoised[hds_TFOOT]))) {
+ } else if (dom_string_caseless_isequal((parent->parent)->name,
+ doc->elements[DOM_HTML_ELEMENT_TYPE_TABLE]) &&
+ (dom_string_caseless_isequal(parent->name,
+ doc->elements[DOM_HTML_ELEMENT_TYPE_TBODY]) ||
+ dom_string_caseless_isequal(parent->name,
+ doc->elements[DOM_HTML_ELEMENT_TYPE_TFOOT]))) {
uint32_t len;
dom_html_table_section_element *t_head;
dom_html_collection *rows;
@@ -227,7 +233,8 @@ dom_exception dom_html_table_row_element_get_row_index(
for (n = n->first_child;n != parent && n != NULL;
n = n->next) {
- if (dom_string_caseless_isequal(n->name, doc->memoised[hds_TBODY])) {
+ if (dom_string_caseless_isequal(n->name,
+ doc->elements[DOM_HTML_ELEMENT_TYPE_TBODY])) {
exp = dom_html_table_section_element_get_rows(
(dom_html_table_section_element *)n,
&rows);
@@ -265,12 +272,13 @@ dom_exception dom_html_table_row_element_get_section_row_index(
dom_node_internal *n = ((dom_node_internal *)table_row)->parent;
dom_html_document *doc = (dom_html_document *) ((dom_node_internal *) table_row)->owner;
int32_t count = 0;
- for(n = n->first_child; n != (dom_node_internal *)table_row;
+ for (n = n->first_child; n != (dom_node_internal *)table_row;
n = n->next) {
- if(n->type == DOM_ELEMENT_NODE &&
- dom_string_caseless_isequal(n->name, doc->memoised[hds_TR])) {
+ if (n->type == DOM_ELEMENT_NODE &&
+ dom_string_caseless_isequal(n->name,
+ doc->elements[DOM_HTML_ELEMENT_TYPE_TR])) {
count += 1;
- }
+ }
}
*section_row_index = count;
return DOM_NO_ERR;
@@ -285,9 +293,10 @@ dom_exception dom_html_table_row_element_get_section_row_index(
*/
bool table_cells_callback(struct dom_node_internal *node, void *ctx)
{
- if(node->type == DOM_ELEMENT_NODE &&
+ dom_html_document *doc = ctx;
+ if (node->type == DOM_ELEMENT_NODE &&
dom_string_caseless_isequal(node->name,
- ((dom_html_document *)ctx)->memoised[hds_TD])) {
+ doc->elements[DOM_HTML_ELEMENT_TYPE_TD])) {
return true;
}
return false;
@@ -323,33 +332,34 @@ dom_exception dom_html_table_row_element_insert_cell(
dom_node *node; /*< The node at the (index)th position*/
- dom_html_collection *cells; /*< The collection of cells in input table_row_element*/
+ dom_html_collection *cells; /*< The collection of cells in input table_row_element*/
uint32_t len; /*< The size of the cell collection */
dom_exception exp; /*< Variable for getting the exceptions*/
- exp = _dom_html_element_create(doc, doc->memoised[hds_TD],
+ exp = _dom_html_element_create(doc,
+ doc->elements[DOM_HTML_ELEMENT_TYPE_TD],
((dom_node_internal *)element)->namespace,
((dom_node_internal *)element)->prefix,
cell);
- if(exp != DOM_NO_ERR)
+ if (exp != DOM_NO_ERR)
return exp;
exp = dom_html_table_row_element_get_cells(element, &cells);
- if(exp != DOM_NO_ERR) {
+ if (exp != DOM_NO_ERR) {
dom_node_unref(*cell);
return exp;
}
exp = dom_html_collection_get_length(cells, &len);
- if(exp != DOM_NO_ERR) {
+ if (exp != DOM_NO_ERR) {
dom_node_unref(*cell);
return exp;
}
- if(index < -1 || index > (int32_t)len) {
+ if (index < -1 || index > (int32_t)len) {
/* Check for index validity */
dom_html_collection_unref (cells);
return DOM_INDEX_SIZE_ERR;
- } else if(index == -1 || index == (int32_t)len) {
+ } else if (index == -1 || index == (int32_t)len) {
dom_node *new_cell;
dom_html_collection_unref(cells);
@@ -363,8 +373,7 @@ dom_exception dom_html_table_row_element_insert_cell(
dom_html_collection_unref(cells);
return dom_node_insert_before(element,
- *cell, node,
- &new_cell);
+ *cell, node, &new_cell);
}
}
diff --git a/src/html/html_tablesection_element.c b/src/html/html_tablesection_element.c
index dbc09029..9718612a 100644
--- a/src/html/html_tablesection_element.c
+++ b/src/html/html_tablesection_element.c
@@ -50,7 +50,8 @@ dom_exception _dom_html_table_section_element_create(struct dom_html_document *d
node->base.vtable = &_dom_html_element_vtable;
node->vtable = &_protect_vtable;
- return _dom_html_table_section_element_initialise(doc, tag_name, namespace, prefix, *ele);
+ return _dom_html_table_section_element_initialise(doc, tag_name,
+ namespace, prefix, *ele);
}
/**
@@ -168,9 +169,10 @@ SIMPLE_GET_SET(v_align);
/* The callback function for _dom_html_collection_create*/
bool table_section_callback(struct dom_node_internal *node, void *ctx)
{
+ dom_html_document *doc = ctx;
if(node->type == DOM_ELEMENT_NODE &&
dom_string_caseless_isequal(node->name,
- ((dom_html_document *)ctx)->memoised[hds_TR])) {
+ doc->elements[DOM_HTML_ELEMENT_TYPE_TR])) {
return true;
}
return false;
diff --git a/src/html/html_text_area_element.c b/src/html/html_text_area_element.c
index ac90a76e..cfc3bed1 100644
--- a/src/html/html_text_area_element.c
+++ b/src/html/html_text_area_element.c
@@ -67,8 +67,8 @@ dom_exception _dom_html_text_area_element_initialise(struct dom_html_document *d
ele->value_set = false;
return _dom_html_element_initialise(doc, &ele->base,
- doc->memoised[hds_TEXTAREA],
- namespace, prefix);
+ doc->elements[DOM_HTML_ELEMENT_TYPE_TEXTAREA],
+ namespace, prefix);
}
/**
diff --git a/src/html/html_title_element.c b/src/html/html_title_element.c
index 80da5e16..e2107c86 100644
--- a/src/html/html_title_element.c
+++ b/src/html/html_title_element.c
@@ -61,8 +61,8 @@ dom_exception _dom_html_title_element_initialise(struct dom_html_document *doc,
struct dom_html_title_element *ele)
{
return _dom_html_element_initialise(doc, &ele->base,
- doc->memoised[hds_TITLE],
- namespace, prefix);
+ doc->elements[DOM_HTML_ELEMENT_TYPE_TITLE],
+ namespace, prefix);
}
/**
diff --git a/src/html/html_ulist_element.c b/src/html/html_ulist_element.c
index e7f8bb32..17d31a9e 100644
--- a/src/html/html_ulist_element.c
+++ b/src/html/html_ulist_element.c
@@ -61,8 +61,8 @@ dom_exception _dom_html_u_list_element_initialise(struct dom_html_document *doc,
struct dom_html_u_list_element *ele)
{
return _dom_html_element_initialise(doc, &ele->base,
- doc->memoised[hds_UL],
- namespace, u_listfix);
+ doc->elements[DOM_HTML_ELEMENT_TYPE_UL],
+ namespace, u_listfix);
}
/**