From cd76c31d8ce73402b40e45d73dace053cc8a28b5 Mon Sep 17 00:00:00 2001 From: Ottermandias Date: Wed, 24 Apr 2024 23:41:55 +0200 Subject: [PATCH] Fix stack overflow. --- Penumbra/Mods/SubMods/DefaultSubMod.cs | 2 +- Penumbra/Mods/SubMods/IModDataContainer.cs | 8 ++++---- Penumbra/Mods/SubMods/MultiSubMod.cs | 2 +- Penumbra/Mods/SubMods/SingleSubMod.cs | 2 +- 4 files changed, 7 insertions(+), 7 deletions(-) diff --git a/Penumbra/Mods/SubMods/DefaultSubMod.cs b/Penumbra/Mods/SubMods/DefaultSubMod.cs index ced0cd0d..8b166505 100644 --- a/Penumbra/Mods/SubMods/DefaultSubMod.cs +++ b/Penumbra/Mods/SubMods/DefaultSubMod.cs @@ -23,7 +23,7 @@ public class DefaultSubMod(IMod mod) : IModDataContainer => null; public void AddDataTo(Dictionary redirections, HashSet manipulations) - => ((IModDataContainer)this).AddDataTo(redirections, manipulations); + => IModDataContainer.AddDataTo(this, redirections, manipulations); public (int GroupIndex, int DataIndex) GetDataIndices() => (-1, 0); diff --git a/Penumbra/Mods/SubMods/IModDataContainer.cs b/Penumbra/Mods/SubMods/IModDataContainer.cs index 18b3b23f..c9420821 100644 --- a/Penumbra/Mods/SubMods/IModDataContainer.cs +++ b/Penumbra/Mods/SubMods/IModDataContainer.cs @@ -16,14 +16,14 @@ public interface IModDataContainer public Dictionary FileSwaps { get; set; } public HashSet Manipulations { get; set; } - public void AddDataTo(Dictionary redirections, HashSet manipulations) + public static void AddDataTo(IModDataContainer container, Dictionary redirections, HashSet manipulations) { - foreach (var (path, file) in Files) + foreach (var (path, file) in container.Files) redirections.TryAdd(path, file); - foreach (var (path, file) in FileSwaps) + foreach (var (path, file) in container.FileSwaps) redirections.TryAdd(path, file); - manipulations.UnionWith(Manipulations); + manipulations.UnionWith(container.Manipulations); } public string GetName() diff --git a/Penumbra/Mods/SubMods/MultiSubMod.cs b/Penumbra/Mods/SubMods/MultiSubMod.cs index 00216b77..12dfcada 100644 --- a/Penumbra/Mods/SubMods/MultiSubMod.cs +++ b/Penumbra/Mods/SubMods/MultiSubMod.cs @@ -65,7 +65,7 @@ public class MultiSubMod(Mod mod, MultiModGroup group) : IModDataOption } public void AddDataTo(Dictionary redirections, HashSet manipulations) - => ((IModDataContainer)this).AddDataTo(redirections, manipulations); + => IModDataContainer.AddDataTo(this, redirections, manipulations); public static MultiSubMod CreateForSaving(string name, string description, ModPriority priority) => new(null!, null!) diff --git a/Penumbra/Mods/SubMods/SingleSubMod.cs b/Penumbra/Mods/SubMods/SingleSubMod.cs index 499ab192..ba91e271 100644 --- a/Penumbra/Mods/SubMods/SingleSubMod.cs +++ b/Penumbra/Mods/SubMods/SingleSubMod.cs @@ -63,7 +63,7 @@ public class SingleSubMod(Mod mod, SingleModGroup group) : IModDataOption } public void AddDataTo(Dictionary redirections, HashSet manipulations) - => ((IModDataContainer)this).AddDataTo(redirections, manipulations); + => IModDataContainer.AddDataTo(this, redirections, manipulations); public (int GroupIndex, int DataIndex) GetDataIndices() => (Group.GetIndex(), GetDataIndex());