summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDaniel Silverstone <dsilvers@digital-scurf.org>2012-07-22 11:58:28 +0100
committerDaniel Silverstone <dsilvers@digital-scurf.org>2012-07-22 11:58:28 +0100
commit9f74d817eec3a46f0c34dcd43ad2325fb9cc06bd (patch)
treec7561c00d1d475eafd568dff2882f3bda6efec3d
parent5b82e5a23e4b442bc330783091ed01b95f037175 (diff)
downloadlibdom-9f74d817eec3a46f0c34dcd43ad2325fb9cc06bd.tar.gz
libdom-9f74d817eec3a46f0c34dcd43ad2325fb9cc06bd.tar.bz2
DOMNode: Clear string pointers when we unref them
-rw-r--r--src/core/node.c16
1 files changed, 12 insertions, 4 deletions
diff --git a/src/core/node.c b/src/core/node.c
index 9ddac0c..ca8fd72 100644
--- a/src/core/node.c
+++ b/src/core/node.c
@@ -231,11 +231,15 @@ void _dom_node_finalise(dom_node_internal *node)
}
node->user_data = NULL;
- if (node->prefix != NULL)
+ if (node->prefix != NULL) {
dom_string_unref(node->prefix);
+ node->prefix = NULL;
+ }
- if (node->namespace != NULL)
+ if (node->namespace != NULL) {
dom_string_unref(node->namespace);
+ node->namespace = NULL;
+ }
/* Destroy all the child nodes of this node */
p = node->first_child;
@@ -253,11 +257,15 @@ void _dom_node_finalise(dom_node_internal *node)
node->first_child = NULL;
node->parent = NULL;
- if (node->value != NULL)
+ if (node->value != NULL) {
dom_string_unref(node->value);
+ node->value = NULL;
+ }
- if (node->name != NULL)
+ if (node->name != NULL) {
dom_string_unref(node->name);
+ node->name = NULL;
+ }
/* If the node has no owner document, we need not to finalise its
* dom_event_target_internal structure.