Skip to content

Commit 414f2ff

Browse files
committed
Optimisation of XPathParser#node_test
1 parent 8030c9e commit 414f2ff

1 file changed

Lines changed: 15 additions & 6 deletions

File tree

lib/rexml/xpath_parser.rb

Lines changed: 15 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -492,21 +492,30 @@ def node_test(path_stack, nodesets, any_type: :element)
492492
if strict?
493493
raw_node.name == name and raw_node.namespace == ""
494494
else
495-
ns = get_namespace(raw_node, prefix)
496-
raw_node.name == name and raw_node.namespace == ns
495+
if raw_node.name == name
496+
raw_node.namespace == get_namespace(raw_node, prefix)
497+
else
498+
false
499+
end
497500
end
498501
else
499-
ns = get_namespace(raw_node, prefix)
500-
raw_node.name == name and raw_node.namespace == ns
502+
if raw_node.name == name
503+
raw_node.namespace == get_namespace(raw_node, prefix)
504+
else
505+
false
506+
end
501507
end
502508
when :attribute
503509
if prefix.nil?
504510
raw_node.name == name
505511
elsif prefix.empty?
506512
raw_node.name == name and raw_node.namespace == ""
507513
else
508-
ns = get_namespace(raw_node.element, prefix)
509-
raw_node.name == name and raw_node.namespace == ns
514+
if raw_node.name == name
515+
raw_node.namespace == get_namespace(raw_node.element, prefix)
516+
else
517+
false
518+
end
510519
end
511520
else
512521
false

0 commit comments

Comments
 (0)