-
Notifications
You must be signed in to change notification settings - Fork 363
Closed
Labels
Good first issue 💯Issues identified as good for first-time contributorsIssues identified as good for first-time contributorsbug 🐛An unexpected issue that highlights incorrect behaviorAn unexpected issue that highlights incorrect behaviorhigh-performance 🚂Issues/PRs for the HighPerformance packageIssues/PRs for the HighPerformance package
Description
Describe the bug
The following code throws System.AccessViolationException:
int height = 720;
int width = 1280;
byte[] storage = new byte[width * height * sizeof(int)];
Memory2D<int> data = storage
.AsMemory()
.Cast<byte, int>()
.AsMemory2D(height: height, width: width);
Memory2D<int> slice = data.Slice(
row: height / 2,
column: 0,
height: height / 2,
width: width);
int total = 0;
foreach (int v in slice.Span)
{
total += v;
}Regression
No response
Steps to reproduce
Create a project targeting net7.0, paste the above code into the `Main` method, run it.
Expected behavior
The code is supposed to calculate a sum of all values in the slice (in this case, 0).
Screenshots
IDE and version
VS 2022
IDE version
17.4.4
Nuget packages
- CommunityToolkit.Common
- CommunityToolkit.Diagnostics
- CommunityToolkit.HighPerformance
- CommunityToolkit.Mvvm (aka MVVM Toolkit)
Nuget package version(s)
8.2.0
Additional context
The problem disappears when there's no Cast() (so, we are summing over a Span of bytes). It also disappears when there's no Slice() (so, we are summing over data instead of slice).
Help us help you
No, just wanted to report this
Metadata
Metadata
Assignees
Labels
Good first issue 💯Issues identified as good for first-time contributorsIssues identified as good for first-time contributorsbug 🐛An unexpected issue that highlights incorrect behaviorAn unexpected issue that highlights incorrect behaviorhigh-performance 🚂Issues/PRs for the HighPerformance packageIssues/PRs for the HighPerformance package
