summaryrefslogtreecommitdiff
path: root/render/imagemap.c
diff options
context:
space:
mode:
authorChris Young <chris@unsatisfactorysoftware.co.uk>2012-10-22 20:01:51 +0100
committerChris Young <chris@unsatisfactorysoftware.co.uk>2012-10-22 20:01:51 +0100
commitbcd43d3f5989b236f696773ab523f56cac54cd8a (patch)
treedc1d00799cc93d9c7e3f7298b3fdcabb92bd28e7 /render/imagemap.c
parent094b866388f504bbbecec6290c286f8b6cb008fb (diff)
parent9629e428a55961106fcd15fd9e0ad9de0649f314 (diff)
downloadnetsurf-bcd43d3f5989b236f696773ab523f56cac54cd8a.tar.gz
netsurf-bcd43d3f5989b236f696773ab523f56cac54cd8a.tar.bz2
Merge branch 'master' of git://git.netsurf-browser.org/netsurf
Diffstat (limited to 'render/imagemap.c')
-rw-r--r--render/imagemap.c19
1 files changed, 12 insertions, 7 deletions
diff --git a/render/imagemap.c b/render/imagemap.c
index bf90443c4..c41b86d0b 100644
--- a/render/imagemap.c
+++ b/render/imagemap.c
@@ -251,23 +251,25 @@ void imagemap_dump(html_content *c)
* \param map_str A dom_string which is "map"
* \return false on memory exhaustion, true otherwise
*/
-bool
+nserror
imagemap_extract(html_content *c)
{
dom_nodelist *nlist;
dom_exception exc;
unsigned long mapnr;
uint32_t maybe_maps;
-
+ nserror ret = NSERROR_OK;
+
exc = dom_document_get_elements_by_tag_name(c->document,
corestring_dom_map,
&nlist);
if (exc != DOM_NO_ERR) {
- return false;
+ return NSERROR_DOM;
}
exc = dom_nodelist_get_length(nlist, &maybe_maps);
if (exc != DOM_NO_ERR) {
+ ret = NSERROR_DOM;
goto out_nlist;
}
@@ -276,6 +278,7 @@ imagemap_extract(html_content *c)
dom_string *name;
exc = dom_nodelist_item(nlist, mapnr, &node);
if (exc != DOM_NO_ERR) {
+ ret = NSERROR_DOM;
goto out_nlist;
}
@@ -283,6 +286,7 @@ imagemap_extract(html_content *c)
&name);
if (exc != DOM_NO_ERR) {
dom_node_unref(node);
+ ret = NSERROR_DOM;
goto out_nlist;
}
@@ -292,6 +296,7 @@ imagemap_extract(html_content *c)
&name);
if (exc != DOM_NO_ERR) {
dom_node_unref(node);
+ ret = NSERROR_DOM;
goto out_nlist;
}
}
@@ -301,6 +306,7 @@ imagemap_extract(html_content *c)
if (imagemap_extract_map(node, c, &entry) == false) {
dom_string_unref(name);
dom_node_unref(node);
+ ret = NSERROR_NOMEM; /** @todo check this */
goto out_nlist;
}
@@ -313,6 +319,7 @@ imagemap_extract(html_content *c)
(imagemap_add(c, name, entry) == false)) {
dom_string_unref(name);
dom_node_unref(node);
+ ret = NSERROR_NOMEM; /** @todo check this */
goto out_nlist;
}
}
@@ -321,14 +328,12 @@ imagemap_extract(html_content *c)
dom_node_unref(node);
}
- dom_nodelist_unref(nlist);
-
- return true;
out_nlist:
dom_nodelist_unref(nlist);
- return false;
+
+ return ret;
}
/**