diff options
author | Daniel Silverstone <dsilvers@digital-scurf.org> | 2012-07-22 11:58:28 +0100 |
---|---|---|
committer | Daniel Silverstone <dsilvers@digital-scurf.org> | 2012-07-22 11:58:28 +0100 |
commit | 9f74d817eec3a46f0c34dcd43ad2325fb9cc06bd (patch) | |
tree | c7561c00d1d475eafd568dff2882f3bda6efec3d /src/core | |
parent | 5b82e5a23e4b442bc330783091ed01b95f037175 (diff) | |
download | libdom-9f74d817eec3a46f0c34dcd43ad2325fb9cc06bd.tar.gz libdom-9f74d817eec3a46f0c34dcd43ad2325fb9cc06bd.tar.bz2 |
DOMNode: Clear string pointers when we unref them
Diffstat (limited to 'src/core')
-rw-r--r-- | src/core/node.c | 16 |
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. |