Skip to content

Commit 00e2303

Browse files
committed
fixes
1 parent fca2bbb commit 00e2303

File tree

3 files changed

+8
-46
lines changed

3 files changed

+8
-46
lines changed

ext/dom/obj_map.c

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -344,18 +344,22 @@ static void dom_map_get_by_class_name_item(dom_nnodemap_object *map, zend_long i
344344
xmlNodePtr nodep = dom_object_get_node(map->baseobj);
345345
xmlNodePtr itemnode = NULL;
346346
if (nodep && index >= 0) {
347-
xmlNodePtr basep = nodep;
348347
dom_node_idx_pair start_point = dom_obj_map_get_start_point(map, nodep, index);
349348
if (start_point.node) {
350-
itemnode = php_dom_next_in_tree_order(start_point.node, basep);
349+
if (start_point.index > 0) {
350+
/* Only start iteration at next point if we actually have an index to seek to. */
351+
itemnode = php_dom_next_in_tree_order(start_point.node, nodep);
352+
} else {
353+
itemnode = start_point.node;
354+
}
351355
} else {
352356
itemnode = php_dom_first_child_of_container_node(nodep);
353357
}
354358

355359
do {
356360
--start_point.index;
357361
while (itemnode != NULL && !dom_matches_class_name(map, itemnode)) {
358-
itemnode = php_dom_next_in_tree_order(itemnode, basep);
362+
itemnode = php_dom_next_in_tree_order(itemnode, nodep);
359363
}
360364
} while (start_point.index > 0 && itemnode);
361365
}

ext/dom/tests/modern/common/Element_getElementsByClassName.phpt

Lines changed: 0 additions & 42 deletions
This file was deleted.

ext/dom/tests/modern/common/Element_getElementsByClassName_empty.phpt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ foreach ($collection as $node) {
2121
var_dump($dom->getElementsByClassName(" ")->count());
2222
var_dump($dom->getElementsByClassName("\t")->count());
2323
var_dump($dom->getElementsByClassName("\t\n\f\v")->count());
24-
var_dump($dom->getElementsByClassName("\t\n\f\v")->namedItem("cjild"));
24+
var_dump($dom->getElementsByClassName("\t\n\f\v")->namedItem("child"));
2525

2626
?>
2727
--EXPECT--

0 commit comments

Comments
 (0)