C#C
C#3y ago
sir loin

Weird Access violation (no exception) when using StreamReader

internal static IEnumerable<Object3d> CreateModel(string path, string spritePath, uint startTime)
    {
        using var archive = ZipFile.OpenRead(Paths.AssetArchive);
        using StreamReader read = new(archive.GetEntry(path).Open());

        List<Vector3> vertices = [];

        string line;
        while ((line = read.ReadLine()) is not null)
        {
            var values = line.Trim().Split(' ');
            if (values[0].Equals("v")) vertices.Add(new(float.Parse(values[1]), -float.Parse(values[3]), float.Parse(values[2])));
            else if (values[0].Equals("f"))
            {
                List<Vector3> faceVertices = [];
                for (var i = 1; i < values.Length; ++i) faceVertices.Add(vertices[int.Parse(values[i].Split('/')[0]) - 1]);

                for (var i = 1; i <= faceVertices.Count; ++i)
                {
                    Line3d sprite = new()
                    {
                        SpritePath = spritePath,
                        UseDistanceFade = false
                    };

                    sprite.StartPosition.Add(startTime, faceVertices[i == faceVertices.Count ? 0 : i]);
                    sprite.EndPosition.Add(startTime, faceVertices[i - 1]);
                    sprite.Thickness.Add(startTime, 2);

                    yield return sprite;
                }
            }
        }
    }


I have no idea why reading from this stream and then referencing from the vertices list is causing a memory violation, I need help
Was this page helpful?