summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDaniel Silverstone <dsilvers@digital-scurf.org>2012-08-06 11:26:23 +0100
committerDaniel Silverstone <dsilvers@digital-scurf.org>2012-08-06 11:26:23 +0100
commite9c1853832ad6357dd2a01b67b6ace22e2219c78 (patch)
tree96116d2dba595c7093dae4ec4012439fe0532fe8
parentd207bdd33e07558a0dff07123cecffc0d49084e7 (diff)
downloadlibdom-e9c1853832ad6357dd2a01b67b6ace22e2219c78.tar.gz
libdom-e9c1853832ad6357dd2a01b67b6ace22e2219c78.tar.bz2
DOMDocument::_dom_find_element_by_id: Only compare ids, if the element *has* one
-rw-r--r--src/core/document.c11
1 files changed, 6 insertions, 5 deletions
diff --git a/src/core/document.c b/src/core/document.c
index 456d906..6284897 100644
--- a/src/core/document.c
+++ b/src/core/document.c
@@ -1233,14 +1233,15 @@ dom_exception _dom_find_element_by_id(dom_node_internal *root,
dom_string *real_id;
_dom_element_get_id((dom_element *) node, &real_id);
+ if (real_id != NULL) {
+ if (dom_string_isequal(real_id, id)) {
+ dom_string_unref(real_id);
+ *result = (dom_element *) node;
+ return DOM_NO_ERR;
+ }
- if (dom_string_isequal(real_id, id)) {
dom_string_unref(real_id);
- *result = (dom_element *) node;
- return DOM_NO_ERR;
}
-
- dom_string_unref(real_id);
}
if (node->first_child != NULL) {