Return deep copy in GetNonGlobalPlugins to protect state

GetNonGlobalPlugins now returns a new dictionary with copied lists,
preventing external modification of the internal _nonGlobalPlugins
collection. This change improves encapsulation and safeguards
plugin manager state integrity.
This commit is contained in:
Jack251970 2026-02-26 17:05:12 +08:00
parent b8bc7fa82d
commit 8760fe29ee

View file

@ -588,7 +588,12 @@ namespace Flow.Launcher.Core.Plugin
public static Dictionary<string, List<PluginPair>> GetNonGlobalPlugins()
{
return _nonGlobalPlugins.ToDictionary();
var nonGlobalPlugins = new Dictionary<string, List<PluginPair>>();
foreach (var kvp in _nonGlobalPlugins)
{
nonGlobalPlugins.Add(kvp.Key, [.. kvp.Value]);
}
return nonGlobalPlugins;
}
public static List<PluginPair> GetTranslationPlugins()