summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorJohn Mark Bell <jmb@netsurf-browser.org>2007-09-23 00:51:36 +0000
committerJohn Mark Bell <jmb@netsurf-browser.org>2007-09-23 00:51:36 +0000
commit561ab9e739d6bf1a8d84f4607c578d60810067c2 (patch)
tree2d44adce9361512506b7dc2c1ec9fc7749beb3b9 /src
parente1ab5b4e0043fbabc52f0d0ca0d14e55bb4f5829 (diff)
downloadlibdom-561ab9e739d6bf1a8d84f4607c578d60810067c2.tar.gz
libdom-561ab9e739d6bf1a8d84f4607c578d60810067c2.tar.bz2
Fix dom_element_set_attribute() to use dom_attr_set_value() to replace the value of an existing attribute -- attribute values are stored as a tree of child nodes, not as a string attached to the nodeValue pointer.
svn path=/trunk/dom/; revision=3580
Diffstat (limited to 'src')
-rw-r--r--src/core/element.c9
1 files changed, 4 insertions, 5 deletions
diff --git a/src/core/element.c b/src/core/element.c
index 16c6932..0d23347 100644
--- a/src/core/element.c
+++ b/src/core/element.c
@@ -253,12 +253,11 @@ dom_exception dom_element_set_attribute(struct dom_element *element,
if (a != NULL) {
/* Found an existing attribute, so replace its value */
- if (a->value != NULL)
- dom_string_unref(a->value);
+ dom_exception err;
- if (value != NULL)
- dom_string_ref(value);
- a->value = value;
+ err = dom_attr_set_value((struct dom_attr *) a, value);
+ if (err != DOM_NO_ERR)
+ return err;
} else {
/* No existing attribute, so create one */
dom_exception err;