-
Notifications
You must be signed in to change notification settings - Fork 1.4k
Closed
Labels
Completed 🔥bug 🐛An unexpected issue that highlights incorrect behaviorAn unexpected issue that highlights incorrect behaviorhigh-performance 🚂Issues/PRs for the Microsoft.Toolkit.HighPerformance packageIssues/PRs for the Microsoft.Toolkit.HighPerformance package
Milestone
Description
If you read to the end of the MemoryStream, Position == length. If you then try to
call mstrm.Postion = mstrm.Position, it throws an ArgOutOfRangeException
var foo = new byte[10];
var rom = new ReadOnlyMemory<byte>(foo);
using (var stream = rom.AsStream())
{
for (int i = 0; i < foof.Length; i++)
{
var b = new byte[1];
stream.Read(b, 0, 1);
Console.WriteLine(stream.Position);
}
//Throws out of range exception
stream.Position = stream.Position;
}In MemoryStream.cs, should probably be '>' rather than '>=' to be consistent with the behavior of other streams
public static void ValidatePosition(long position, int length)
{
if ((ulong)position >= (ulong)length)
{
ThrowArgumentOutOfRangeExceptionForPosition();
}
}NuGet Package(s): microsoft.toolkit.highperformance
Package Version(s): v6.1.1
Windows 10 Build Number:
- Fall Creators Update (16299)
- April 2018 Update (17134)
- October 2018 Update (17763)
- May 2019 Update (18362)
- May 2020 Update (19041)
- Insider Build (build number: )
App min and target version:
- Fall Creators Update (16299)
- April 2018 Update (17134)
- October 2018 Update (17763)
- May 2019 Update (18362)
- May 2020 Update (19041)
- Insider Build (xxxxx)
Device form factor:
- Desktop
- Xbox
- Surface Hub
- IoT
Visual Studio
- 2017 (version: )
- 2019 (version: )
- 2019 Preview (version: )
Metadata
Metadata
Assignees
Labels
Completed 🔥bug 🐛An unexpected issue that highlights incorrect behaviorAn unexpected issue that highlights incorrect behaviorhigh-performance 🚂Issues/PRs for the Microsoft.Toolkit.HighPerformance packageIssues/PRs for the Microsoft.Toolkit.HighPerformance package