From 102ae5c42e6a8d1b705cbbf888323251a010cebd Mon Sep 17 00:00:00 2001 From: Kai Guo Date: Wed, 16 Oct 2019 14:35:40 -0700 Subject: [PATCH] Fix a TreeViewItemAutomationPeer crash (#1449) * Fix TreeViewItemAutomationPeer * CR feedback --- dev/TreeView/TreeViewItemAutomationPeer.cpp | 22 ++++++++++++--------- 1 file changed, 13 insertions(+), 9 deletions(-) diff --git a/dev/TreeView/TreeViewItemAutomationPeer.cpp b/dev/TreeView/TreeViewItemAutomationPeer.cpp index d59645c925..47343335b4 100644 --- a/dev/TreeView/TreeViewItemAutomationPeer.cpp +++ b/dev/TreeView/TreeViewItemAutomationPeer.cpp @@ -114,15 +114,17 @@ int32_t TreeViewItemAutomationPeer::GetPositionInSetCore() { winrt::ListView ancestorListView = GetParentListView(); auto targetNode = GetTreeViewNode(); - int positionInSet = -1; + int positionInSet = 0; if (ancestorListView && targetNode) { - auto targetParentNode = targetNode.Parent(); - UINT32 position = 0; - if (targetParentNode.Children().IndexOf(targetNode, position)) + if (const auto targetParentNode = targetNode.Parent()) { - positionInSet = static_cast(position) + 1; + UINT32 position = 0; + if (targetParentNode.Children().IndexOf(targetNode, position)) + { + positionInSet = static_cast(position) + 1; + } } } @@ -133,13 +135,15 @@ int32_t TreeViewItemAutomationPeer::GetSizeOfSetCore() { winrt::ListView ancestorListView = GetParentListView(); auto targetNode = GetTreeViewNode(); - int setSize = -1; + int setSize = 0; if (ancestorListView && targetNode) { - auto targetParentNode = targetNode.Parent(); - UINT32 size = targetParentNode.Children().Size(); - setSize = static_cast(size); + if (const auto targetParentNode = targetNode.Parent()) + { + UINT32 size = targetParentNode.Children().Size(); + setSize = static_cast(size); + } } return setSize;