From 200d016f47a3758e74c316941b4b5b24808a6dc3 Mon Sep 17 00:00:00 2001 From: Daniel Silverstone Date: Sun, 29 Jul 2018 12:53:49 +0100 Subject: Unref nodes properly in foreach --- test/testutils/foreach.c | 7 +++++++ 1 file changed, 7 insertions(+) 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; } -- cgit v1.2.3