summaryrefslogtreecommitdiff
path: root/src/core/element.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/core/element.c')
-rw-r--r--src/core/element.c11
1 files changed, 7 insertions, 4 deletions
diff --git a/src/core/element.c b/src/core/element.c
index baf5533..fbb2388 100644
--- a/src/core/element.c
+++ b/src/core/element.c
@@ -1192,10 +1192,13 @@ dom_exception _dom_element_has_class(struct dom_element *element,
dom_exception err;
unsigned int class;
struct dom_node_internal *node = (struct dom_node_internal *)element;
- dom_document_quirks_mode quirks_mode =
- DOM_DOCUMENT_QUIRKS_MODE_NONE;
-
- *match = false;
+ dom_document_quirks_mode quirks_mode;
+
+ /* Short-circuit case where we have no classes */
+ if (element->n_classes == 0) {
+ *match = false;
+ return DOM_NO_ERR;
+ }
err = dom_document_get_quirks_mode(node->owner, &quirks_mode);
if (err != DOM_NO_ERR)