Commit 74a89b88 authored by Benjamin Beaudry's avatar Benjamin Beaudry Committed by Commit Bot

Changed loop var type from size_t to int

The problem was here:

for (size_t i = children().size() - 1; i >= 0; --i) {

The loop variable |size_t i| was of an unsigned int type, so |i >= 0|
was always true.

Repro on Windows by exploring the tree with Inspect on the link provided
in the crbug description.

Bug: 988153
Change-Id: I1cae093da68f12ed1630a568ec7529703c73cf89
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1737870
Commit-Queue: Benjamin Beaudry <benjamin.beaudry@microsoft.com>
Reviewed-by: default avatarAaron Leventhal <aleventhal@chromium.org>
Reviewed-by: default avatarNektarios Paisios <nektar@chromium.org>
Cr-Commit-Position: refs/heads/master@{#684428}
parent 15b75cab
......@@ -772,7 +772,7 @@ AXNode* AXNode::ComputeLastUnignoredChildRecursive() const {
if (children().size() == 0)
return nullptr;
for (size_t i = children().size() - 1; i >= 0; --i) {
for (int i = static_cast<int>(children().size()) - 1; i >= 0; --i) {
AXNode* child = children_[i];
if (!child->data().HasState(ax::mojom::State::kIgnored))
return child;
......
......@@ -1871,10 +1871,10 @@ TEST(AXTreeTest, UnignoredAccessors) {
// | |____
// | | |
// 13(i) 14 15
// |
// 16
// | |
// 16 17
tree_update.root_id = 1;
tree_update.nodes.resize(16);
tree_update.nodes.resize(17);
tree_update.nodes[0].id = 1;
tree_update.nodes[0].child_ids = {2, 3, 4};
......@@ -1915,11 +1915,15 @@ TEST(AXTreeTest, UnignoredAccessors) {
tree_update.nodes[12].AddState(ax::mojom::State::kIgnored);
tree_update.nodes[13].id = 14;
tree_update.nodes[13].child_ids = {17};
tree_update.nodes[14].id = 15;
tree_update.nodes[15].id = 16;
tree_update.nodes[16].id = 17;
tree_update.nodes[16].AddState(ax::mojom::State::kIgnored);
AXTree tree(tree_update);
EXPECT_EQ(4, tree.GetFromId(1)->GetLastUnignoredChild()->id());
......@@ -1938,6 +1942,7 @@ TEST(AXTreeTest, UnignoredAccessors) {
EXPECT_EQ(nullptr, tree.GetFromId(14)->GetLastUnignoredChild());
EXPECT_EQ(nullptr, tree.GetFromId(15)->GetLastUnignoredChild());
EXPECT_EQ(nullptr, tree.GetFromId(16)->GetLastUnignoredChild());
EXPECT_EQ(nullptr, tree.GetFromId(17)->GetLastUnignoredChild());
}
TEST(AXTreeTest, UnignoredNextPreviousChild) {
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment