summaryrefslogtreecommitdiff
path: root/src/core
diff options
context:
space:
mode:
authorDaniel Silverstone <dsilvers@netsurf-browser.org>2012-07-05 09:34:58 +0100
committerDaniel Silverstone <dsilvers@netsurf-browser.org>2012-07-05 09:34:58 +0100
commit399b0d94b0b3f8e87a1663d09b0321541801f79c (patch)
treec77b4b657d5a1027deefc070075d7bbe1b3d9874 /src/core
parent1d62d9a6f417dc124f33e123c49ea6e5e19fb50a (diff)
downloadlibdom-399b0d94b0b3f8e87a1663d09b0321541801f79c.tar.gz
libdom-399b0d94b0b3f8e87a1663d09b0321541801f79c.tar.bz2
DOMDocument: Memoize the empty string
Diffstat (limited to 'src/core')
-rw-r--r--src/core/document.c10
-rw-r--r--src/core/document.h1
2 files changed, 11 insertions, 0 deletions
diff --git a/src/core/document.c b/src/core/document.c
index 5a286fc..c43f0bc 100644
--- a/src/core/document.c
+++ b/src/core/document.c
@@ -140,6 +140,16 @@ dom_exception _dom_document_initialise(dom_document *doc,
if (err != DOM_NO_ERR)
return err;
+ /* Intern the empty string. The use of a space in the constant
+ * is to prevent the compiler warning about an empty string.
+ */
+ err = dom_string_create_interned((const uint8_t *) ' ', 0,
+ &doc->_memo_empty);
+ if (err != DOM_NO_ERR) {
+ dom_string_unref(doc->class_string);
+ return err;
+ }
+
/* We should not pass a NULL when all things hook up */
return _dom_document_event_internal_initialise(doc, &doc->dei, daf);
}
diff --git a/src/core/document.h b/src/core/document.h
index a2b1801..6cf1f91 100644
--- a/src/core/document.h
+++ b/src/core/document.h
@@ -58,6 +58,7 @@ struct dom_document {
/**< The DocumentEvent interface */
dom_document_quirks_mode quirks;
/**< Document is in quirks mode */
+ dom_string *_memo_empty; /**< The string ''. */
};
/* Create a DOM document */