diff options
author | Jesse Plamondon-Willard <Pathoschild@users.noreply.github.com> | 2022-06-02 01:28:04 -0400 |
---|---|---|
committer | Jesse Plamondon-Willard <Pathoschild@users.noreply.github.com> | 2022-06-10 00:04:26 -0400 |
commit | 62328e438487a55cb84ee09ef966092572b2252e (patch) | |
tree | 86b2fd5ee229ac51479bac79e875426bb1d73c58 | |
parent | 03897776e08cb0703c9763e3b5dcc81d85f277f9 (diff) | |
download | SMAPI-62328e438487a55cb84ee09ef966092572b2252e.tar.gz SMAPI-62328e438487a55cb84ee09ef966092572b2252e.tar.bz2 SMAPI-62328e438487a55cb84ee09ef966092572b2252e.zip |
tweak new code, update release notes
-rw-r--r-- | docs/release-notes.md | 1 | ||||
-rw-r--r-- | src/SMAPI/Framework/Content/ContentCache.cs | 12 |
2 files changed, 5 insertions, 8 deletions
diff --git a/docs/release-notes.md b/docs/release-notes.md index db229ecf..66447b3d 100644 --- a/docs/release-notes.md +++ b/docs/release-notes.md @@ -6,6 +6,7 @@ See [release highlights](https://www.patreon.com/posts/66986798). * For players: * Optimized mod image file loading. + * Minor optimizations (thanks to Michael Kuklinski / Ameisen!). * For mod authors: * Added a new `IRawTextureData` asset type. _You can now load image files through `helper.ModContent` as `IRawTextureData` instead of `Texture2D`. This provides the image size and raw pixel data, which you can pass into other SMAPI APIs like `asset.AsImage().PatchImage`. This is much more efficient when you don't need a full `Texture2D` instance, since it bypasses the GPU operations needed to create one._ diff --git a/src/SMAPI/Framework/Content/ContentCache.cs b/src/SMAPI/Framework/Content/ContentCache.cs index 959d4fb3..bf42812b 100644 --- a/src/SMAPI/Framework/Content/ContentCache.cs +++ b/src/SMAPI/Framework/Content/ContentCache.cs @@ -106,23 +106,19 @@ namespace StardewModdingAPI.Framework.Content /// <returns>Returns any removed keys.</returns> public IEnumerable<string> Remove(Func<string, object, bool> predicate, bool dispose) { - List<string> removed = new List<string>(); + List<string> removed = new(); foreach ((string key, object value) in this.Cache) { if (predicate(key, value)) - { removed.Add(key); - } } foreach (string key in removed) - { this.Remove(key, dispose); - } - // If `removed` is empty, return an empty `Enumerable` instead so that `removed` - // can be quickly collected in Gen0 instead of potentially living longer. - return removed.Count == 0 ? Enumerable.Empty<string>() : removed; + return removed.Count == 0 + ? Enumerable.Empty<string>() // let GC collect the list in gen0 instead of potentially living longer + : removed; } } } |