summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDaniel Silverstone <dsilvers@digital-scurf.org>2018-07-29 12:53:49 +0100
committerDaniel Silverstone <dsilvers@digital-scurf.org>2018-07-29 12:53:49 +0100
commit200d016f47a3758e74c316941b4b5b24808a6dc3 (patch)
treed3eb22191d8983dbadc9123cf4d67f702c075735
parentce4b94ca443909a31a28e4f127dac0348bbedec1 (diff)
downloadlibdom-200d016f47a3758e74c316941b4b5b24808a6dc3.tar.gz
libdom-200d016f47a3758e74c316941b4b5b24808a6dc3.tar.bz2
Unref nodes properly in foreach
-rw-r--r--test/testutils/foreach.c7
1 files changed, 7 insertions, 0 deletions
diff --git a/test/testutils/foreach.c b/test/testutils/foreach.c
index 05d7f2a..e23192c 100644
--- a/test/testutils/foreach.c
+++ b/test/testutils/foreach.c
@@ -44,6 +44,7 @@ bool _get_next_domnodelist(dom_nodelist *list, unsigned int *iterator, dom_node
{
dom_exception err;
uint32_t len;
+ dom_node *old = *ret;
err = dom_nodelist_get_length(list, &len);
if (err != DOM_NO_ERR)
@@ -56,6 +57,12 @@ bool _get_next_domnodelist(dom_nodelist *list, unsigned int *iterator, dom_node
if (err != DOM_NO_ERR)
return false;
+ /* NOTE: If we change the API of dom_nodelist_item to release the ref
+ * then we should remove this
+ */
+ if (old != NULL)
+ dom_node_unref(old);
+
(*iterator)++;
return true;
}