fix: Fixes container enumeration not recycling pooled arrays (#2341)

### Summary

Updates all calls to container.EnumerateItems() to properly dispose of the underlying PooledRefQueue so that we are properly recycling pooled arrays.
This commit is contained in:
Kamron Batman 2026-02-17 09:54:32 -08:00 • committed by GitHub
parent 1780edf0be
commit c494fb4cc3
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
15 changed files with 388 additions and 365 deletions

View file

@ -1599,15 +1599,19 @@ public sealed class BRGame : EventGame
var hadBomb = false;
foreach (var bomb in corpse.EnumerateItemsByType<BRBomb>(false))
using (var queue = corpse.EnumerateItemsByType<BRBomb>(false))
{
hadBomb = true;
bomb.DropTo(mob, killer);
foreach (var bomb in queue)
{
hadBomb = true;
bomb.DropTo(mob, killer);
}
}
if (mob.Backpack != null)
{
foreach (var bomb in mob.Backpack.EnumerateItemsByType<BRBomb>(false))
using var queue = mob.Backpack.EnumerateItemsByType<BRBomb>(false);
foreach (var bomb in queue)
{
hadBomb = true;
bomb.DropTo(mob, killer);

View file

@ -947,15 +947,19 @@ public sealed class CTFGame : EventGame
var hadFlag = false;
foreach (var flag in corpse.EnumerateItemsByType<CTFFlag>(false))
using (var queue = corpse.EnumerateItemsByType<CTFFlag>(false))
{
hadFlag = true;
flag.DropTo(mob, killer);
foreach (var flag in queue)
{
hadFlag = true;
flag.DropTo(mob, killer);
}
}
if (mob.Backpack != null)
{
foreach (var flag in mob.Backpack.EnumerateItemsByType<CTFFlag>(false))
using var queue = mob.Backpack.EnumerateItemsByType<CTFFlag>(false);
foreach (var flag in queue)
{
hadFlag = true;
flag.DropTo(mob, killer);