From 25ab9acb57ca03ee529a2a1a83a5ccf58a7e4195 Mon Sep 17 00:00:00 2001 From: Matt Nadareski Date: Fri, 17 Apr 2026 09:14:39 -0400 Subject: [PATCH] Do not access dictionary with index --- SabreTools.Metadata.DatFiles/ItemDatabase.cs | 24 ++++++++------------ 1 file changed, 10 insertions(+), 14 deletions(-) diff --git a/SabreTools.Metadata.DatFiles/ItemDatabase.cs b/SabreTools.Metadata.DatFiles/ItemDatabase.cs index 9d9c168b..11226de8 100644 --- a/SabreTools.Metadata.DatFiles/ItemDatabase.cs +++ b/SabreTools.Metadata.DatFiles/ItemDatabase.cs @@ -238,18 +238,6 @@ namespace SabreTools.Metadata.DatFiles return default; } - /// - /// Remove a value from the table, returning success - /// - public bool Remove(long index) - { -#if NET40_OR_GREATER || NETCOREAPP || NETSTANDARD2_0_OR_GREATER - return _table.TryRemove(index, out var _); -#else - return _table.Remove(index); -#endif - } - /// /// Remove all values that match a function /// @@ -261,8 +249,16 @@ namespace SabreTools.Metadata.DatFiles for (int i = 0; i < Indexes.Length; i++) #endif { - if (func(_table[i])) - Remove(i); + var value = Get(i); + if (value is null) +#if NET40_OR_GREATER || NETCOREAPP || NETSTANDARD2_0_OR_GREATER + return; +#else + continue; +#endif + + if (func(value)) + TryRemove(i, out _); #if NET40_OR_GREATER || NETCOREAPP || NETSTANDARD2_0_OR_GREATER }); #else