diff --git a/src/libraries/System.Formats.Cbor/src/System/Formats/Cbor/Reader/CborReader.Map.cs b/src/libraries/System.Formats.Cbor/src/System/Formats/Cbor/Reader/CborReader.Map.cs index 1ca66a0537015a..e5dd5aced4bf1f 100644 --- a/src/libraries/System.Formats.Cbor/src/System/Formats/Cbor/Reader/CborReader.Map.cs +++ b/src/libraries/System.Formats.Cbor/src/System/Formats/Cbor/Reader/CborReader.Map.cs @@ -160,7 +160,18 @@ private void ValidateKeyUniqueness((int Offset, int Length) currentKeyEncodingRa { Debug.Assert(_currentKeyOffset != null); - HashSet<(int Offset, int Length)> keyEncodingRanges = GetKeyEncodingRanges(); + HashSet<(int Offset, int Length)>? keyEncodingRanges = _keyEncodingRanges; + if (keyEncodingRanges is null) + { + if (_previousKeyEncodingRange is null) + { + _previousKeyEncodingRange = currentKeyEncodingRange; + return; + } + + keyEncodingRanges = GetKeyEncodingRanges(); + keyEncodingRanges.Add(_previousKeyEncodingRange.Value); + } if (!keyEncodingRanges.Add(currentKeyEncodingRange)) {