diff --git a/1.2/Assemblies/1Fishery.dll b/1.2/Assemblies/1Fishery.dll index 1c83e84..1f2a4a2 100644 Binary files a/1.2/Assemblies/1Fishery.dll and b/1.2/Assemblies/1Fishery.dll differ diff --git a/1.2/Assemblies/1Fishery.pdb b/1.2/Assemblies/1Fishery.pdb index f9c10b7..cfe540b 100644 Binary files a/1.2/Assemblies/1Fishery.pdb and b/1.2/Assemblies/1Fishery.pdb differ diff --git a/1.3/Assemblies/1Fishery.dll b/1.3/Assemblies/1Fishery.dll index 4f69505..e365ffd 100644 Binary files a/1.3/Assemblies/1Fishery.dll and b/1.3/Assemblies/1Fishery.dll differ diff --git a/1.3/Assemblies/1Fishery.pdb b/1.3/Assemblies/1Fishery.pdb index 271d94b..b18519c 100644 Binary files a/1.3/Assemblies/1Fishery.pdb and b/1.3/Assemblies/1Fishery.pdb differ diff --git a/1.4/Assemblies/1Fishery.dll b/1.4/Assemblies/1Fishery.dll index 1d19d32..b5c540b 100644 Binary files a/1.4/Assemblies/1Fishery.dll and b/1.4/Assemblies/1Fishery.dll differ diff --git a/1.4/Assemblies/1Fishery.pdb b/1.4/Assemblies/1Fishery.pdb index d3398ad..9a18dd3 100644 Binary files a/1.4/Assemblies/1Fishery.pdb and b/1.4/Assemblies/1Fishery.pdb differ diff --git a/1.5/Assemblies/1Fishery.dll b/1.5/Assemblies/1Fishery.dll index 760486f..2b39b51 100644 Binary files a/1.5/Assemblies/1Fishery.dll and b/1.5/Assemblies/1Fishery.dll differ diff --git a/1.5/Assemblies/1Fishery.pdb b/1.5/Assemblies/1Fishery.pdb index 381e5aa..e235daa 100644 Binary files a/1.5/Assemblies/1Fishery.pdb and b/1.5/Assemblies/1Fishery.pdb differ diff --git a/Source/FisheryLib/CollectionExtensions.cs b/Source/FisheryLib/CollectionExtensions.cs index 75591e9..f586d3f 100644 --- a/Source/FisheryLib/CollectionExtensions.cs +++ b/Source/FisheryLib/CollectionExtensions.cs @@ -636,6 +636,24 @@ public static class CollectionExtensions return destination; } + public static unsafe void Fill(this T[] array, T value) + { + Guard.IsNotNull(array); + + if (array.Length == 0) + return; + + fixed (T* startAddress = &array[0]) + { + var i = array.Length - 1; + do + { + startAddress[i] = value; + } + while (--i >= 0); + } + } + [MethodImpl(MethodImplOptions.AggressiveInlining)] public static void AddRangeFast(this List list, T[] range) { diff --git a/Source/FisheryLib/Collections/FishSet.cs b/Source/FisheryLib/Collections/FishSet.cs index 2a8a3a8..e88216c 100644 --- a/Source/FisheryLib/Collections/FishSet.cs +++ b/Source/FisheryLib/Collections/FishSet.cs @@ -157,7 +157,7 @@ public class FishSet : ISet, IReadOnlyCollection, ICollection // Mathf.NextPowerOfTwo(minimumCapacity); _buckets = new T?[minimumCapacity]; - Array.Fill(_buckets, _defaultValue); + _buckets.Fill(_defaultValue); _tails = new((uint)minimumCapacity); _bucketBitShift = 32 - FishMath.TrailingZeroCount((uint)_buckets.Length); _wrapAroundMask = _buckets.Length - 1; @@ -447,7 +447,7 @@ public class FishSet : ISet, IReadOnlyCollection, ICollection _tails = new((uint)_buckets.Length << 1); _buckets = new T?[_buckets.Length << 1]; - Array.Fill(_buckets, _defaultValue); + _buckets.Fill(_defaultValue); _bucketBitShift = 32 - FishMath.TrailingZeroCount((uint)_buckets.Length); _wrapAroundMask = _buckets.Length - 1; @@ -618,7 +618,7 @@ public class FishSet : ISet, IReadOnlyCollection, ICollection if (_buckets is null) Initialize(); - Array.Fill(_buckets, _defaultValue); + _buckets.Fill(_defaultValue); _tails.Reset(); _count = 0; diff --git a/Source/FisheryLib/Collections/FishTable.cs b/Source/FisheryLib/Collections/FishTable.cs index 8a33374..01a08a9 100644 --- a/Source/FisheryLib/Collections/FishTable.cs +++ b/Source/FisheryLib/Collections/FishTable.cs @@ -266,7 +266,7 @@ public class FishTable : IDictionary, IDictionary, I // Mathf.NextPowerOfTwo(minimumCapacity); _buckets = new Entry[minimumCapacity]; - Array.Fill(_buckets, _defaultEntry); + _buckets.Fill(_defaultEntry); _tails = new((uint)minimumCapacity); _bucketBitShift = 32 - FishMath.TrailingZeroCount((uint)_buckets.Length); _wrapAroundMask = _buckets.Length - 1; @@ -657,7 +657,7 @@ public class FishTable : IDictionary, IDictionary, I _tails = new((uint)newSize); _buckets = new Entry[newSize]; - Array.Fill(_buckets, _defaultEntry); + _buckets.Fill(_defaultEntry); _bucketBitShift = 32 - FishMath.TrailingZeroCount((uint)newSize); _wrapAroundMask = _buckets.Length - 1; @@ -1298,7 +1298,7 @@ public class FishTable : IDictionary, IDictionary, I if (_buckets is null) Initialize(); - Array.Fill(_buckets, _defaultEntry); + _buckets.Fill(_defaultEntry); _tails.Reset(); _count = 0; diff --git a/Source/FisheryLib/Fishery.cs b/Source/FisheryLib/Fishery.cs index df15a9b..0d3b073 100644 --- a/Source/FisheryLib/Fishery.cs +++ b/Source/FisheryLib/Fishery.cs @@ -29,11 +29,11 @@ namespace FisheryLib; [PublicAPI] public static class FisheryLib { - public const decimal VERSION = 0.51M; + public const decimal VERSION = 0.511M; public static decimal CurrentlyLoadedVersion { get; } = VERSION; - public const string VERSION_STRING = "0.5.1.0"; + public const string VERSION_STRING = "0.5.1.1"; // public static string GetVersion() // {