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
libdom-6d600214268e64e6bc83df61d8abfdf8963acdad.tar.bz2
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 a2a33ed..9dfe738 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 0000000..d4aec10
--- /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 77f8cef..5ad473b 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 9f6c16f..dedcbc5 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 85a2a3e..b3ca8dd 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 7aa20a0..f8e9249 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 f2c10fe..f63583e 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 fbc133e..ec5acf6 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 95b5d31..28b694b 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 4e0d9e0..0ad88ae 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 0c689d6..f5ef051 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 5b25037..38e3276 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 096c84e..c33753e 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 c00529b..dab4dc6 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 35fca73..8b5fea7 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 e742a1a..e32b09e 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 2ab873e..15ea812 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 aadcb22..0be7ee5 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 0606ba6..ee62c02 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 9e1ea1e..b8b0a74 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 871906b..9d9680b 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 00d4476..7082cef 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 ba2842f..ce298fb 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 eb8aa68..7ecab7a 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 ee26019..0a91efe 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 41a30d9..80b39a7 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 fe20cfa..4c5a5f3 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 bbea087..a90ec40 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 e79e011..51611b3 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 c3a522f..2303892 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 2d0e939..1f297e2 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 7dd1d5b..f2c560e 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 7ed026d..8022a7b 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 cf0fe5e..d20c3ce 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 af0f34c..aadd823 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 924a64d..05e6a4f 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 f20a994..20f80d1 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 1568630..27d3f5a 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 3046553..6595ea5 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 cb0c207..cdee6e7 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 b777c5f..e352562 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 3e06915..8f6f4c4 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 20a6c28..63c50b2 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 6bda015..a858717 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 8f564c2..c5f7ced 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 d16bad8..988ef5b 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 e0038f5..3bdf8cd 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 3d199bb..438a365 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 d387e8d..cdf1714 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 d2c3fc6..ddb2d5c 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 796bbc9..c881440 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 cf21a24..d3d985b 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 e4d3514..0a0fb1e 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 dbc0902..9718612 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 ac90a76..cfc3bed 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 80da5e1..e2107c8 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 e7f8bb3..17d31a9 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);
}
/**