summaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
authorDaniel Silverstone <dsilvers@digital-scurf.org>2018-07-29 14:02:55 +0100
committerDaniel Silverstone <dsilvers@digital-scurf.org>2018-07-29 14:02:55 +0100
commit2da4dab86544670377b108ada0d69445d1b09a51 (patch)
tree9d6aec0cb7f1ad872e25c70992656192aa1556f7 /test
parentca9930d02e9534d83542a188011ac9c8b6171965 (diff)
downloadlibdom-2da4dab86544670377b108ada0d69445d1b09a51.tar.gz
libdom-2da4dab86544670377b108ada0d69445d1b09a51.tar.bz2
More cleanup for iterating in test suite
Diffstat (limited to 'test')
-rw-r--r--test/DOMTSHandler.pm2
-rw-r--r--test/testutils/foreach.c6
2 files changed, 7 insertions, 1 deletions
diff --git a/test/DOMTSHandler.pm b/test/DOMTSHandler.pm
index 0cf3a56..5022db9 100644
--- a/test/DOMTSHandler.pm
+++ b/test/DOMTSHandler.pm
@@ -1314,6 +1314,7 @@ sub generate_control_statement {
print "unsigned int iterator$iterator_index = 0;";
print "foreach_initialise_domnamednodemap($coll, \&iterator$iterator_index);\n";
print "while(get_next_domnamednodemap($coll, \&iterator$iterator_index, \&$member)) {\n";
+ $self->addto_cleanup($member);
}
if ($self->{"var"}->{$coll} eq "HTMLCollection") {
@@ -1321,6 +1322,7 @@ sub generate_control_statement {
print "unsigned int iterator$iterator_index = 0;";
print "foreach_initialise_domhtmlcollection($coll, \&iterator$iterator_index);\n";
print "while(get_next_domhtmlcollection($coll, \&iterator$iterator_index, \&$member)) {\n";
+ $self->addto_cleanup($member);
}
}
}
diff --git a/test/testutils/foreach.c b/test/testutils/foreach.c
index e23192c..533958f 100644
--- a/test/testutils/foreach.c
+++ b/test/testutils/foreach.c
@@ -93,6 +93,7 @@ bool _get_next_domnamednodemap(dom_namednodemap *map, unsigned int *iterator, do
{
dom_exception err;
uint32_t len;
+ dom_node *old = *ret;
err = dom_namednodemap_get_length(map, &len);
if (err != DOM_NO_ERR)
@@ -104,7 +105,10 @@ bool _get_next_domnamednodemap(dom_namednodemap *map, unsigned int *iterator, do
err = dom_namednodemap_item(map, (*iterator), ret);
if (err != DOM_NO_ERR)
return false;
-
+
+ if (old != NULL)
+ dom_node_unref(old);
+
(*iterator)++;
return true;