Skip to content

Commit 1b27a26

Browse files
committed
Revert "perf: do not duplicate nodes when indexing"
This reverts commit dbbbf13.
1 parent ba1486b commit 1b27a26

File tree

1 file changed

+5
-5
lines changed

1 file changed

+5
-5
lines changed

src/Microsoft.OpenApi/Reader/ParseNodes/MapNode.cs

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ private PropertyNode GetPropertyNodeFromJsonNode(string key, JsonNode? node)
2424
return new PropertyNode(Context, key, node ?? JsonNullSentinel.JsonNull);
2525
}
2626

27-
private readonly Dictionary<string, PropertyNode> _nodes;
27+
private readonly List<PropertyNode> _nodes;
2828
public MapNode(ParsingContext context, JsonNode node) : base(
2929
context, node)
3030
{
@@ -34,16 +34,16 @@ public MapNode(ParsingContext context, JsonNode node) : base(
3434
}
3535

3636
_node = mapNode;
37-
_nodes = _node.ToDictionary(static p => p.Key, p => GetPropertyNodeFromJsonNode(p.Key, p.Value), StringComparer.Ordinal);
37+
_nodes = _node.Select(p => GetPropertyNodeFromJsonNode(p.Key, p.Value)).ToList();
3838
}
3939

4040
public PropertyNode? this[string key]
4141
{
4242
get
4343
{
44-
if (_node.ContainsKey(key))
44+
if (_node.TryGetPropertyValue(key, out var value))
4545
{
46-
return _nodes[key];
46+
return GetPropertyNodeFromJsonNode(key, value);
4747
}
4848

4949
return null;
@@ -134,7 +134,7 @@ public override Dictionary<string, HashSet<T>> CreateArrayMap<T>(Func<ValueNode,
134134

135135
public IEnumerator<PropertyNode> GetEnumerator()
136136
{
137-
return _nodes.Values.GetEnumerator();
137+
return _nodes.GetEnumerator();
138138
}
139139

140140
IEnumerator IEnumerable.GetEnumerator()

0 commit comments

Comments
 (0)