ModernUO/Projects/UOContent/Engines
Kamron Batman a2fd2441ae
fix: Removes unnecessary dictionary removal guards
Dictionary<K,V>.Remove and HashSet<T>.Remove do not bump the collection
version, so removing during a foreach is safe and the collect-then-remove
queues guarding those loops are dead weight. This drops them, including
via the Keys and Values enumerators.

Deletion of a Mobile is left deferred: removing from World.Mobiles while
enumerating it is fine, but Delete() runs OnDelete/OnAfterDelete, the
OnParentDeleted cascade over the pack, and region and guild callbacks.
Anything in there that constructs a Mobile is an Add into the dictionary
being enumerated, which does invalidate it.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-08-08 11:43:10 -07:00
..
Advanced Search fix(advancedsearch): clear pause and sample exit before signaling the drain (#2549) 2026-07-25 15:32:06 -07:00
BuffIcons feat: Standardizes South/East selection gumps (#1839) 2025-02-14 00:15:14 -08:00
Bulk Orders perf(saves): eliminate world-save freeze bottlenecks (~9.5x faster freeze) (#2525) 2026-07-16 22:53:28 -07:00
CannedEvil fix: Removes unnecessary dictionary removal guards 2026-08-08 11:43:10 -07:00
Character Creation fix: Fixes bug with non blessed starter spellbooks (#2368) 2026-03-13 00:20:23 -07:00
Chat fix: Removes unnecessary dictionary removal guards 2026-08-08 11:43:10 -07:00
ConPVP fix: Removes unnecessary dictionary removal guards 2026-08-08 11:43:10 -07:00
Craft feat(throwing): core gargoyle Throwing skill (SA) (#2510) 2026-07-02 21:06:11 -07:00
Doom chore: Use var everywhere (#2294) 2025-12-27 16:47:28 -08:00
Ethics perf(saves): eliminate world-save freeze bottlenecks (~9.5x faster freeze) (#2525) 2026-07-16 22:53:28 -07:00
Events fix: Streamlines event scheduler API. Adds months to weekly recurrence (#2178) 2025-05-07 22:42:44 -07:00
Factions fix(opl): refuse property list invalidation raised from inside GetProperties (#2555) 2026-07-28 21:29:03 -07:00
FeatureFlags fix: Streamlines insurance. Insurance only executes when enabled. (#2550) 2026-07-26 09:47:49 -07:00
Harvest chore: Use var everywhere (#2294) 2025-12-27 16:47:28 -08:00
Help feat: Add zero-alloc interpolation handler to ValueStringBuilder, replace all StringBuilder usage (#2387) 2026-03-22 14:23:44 -07:00
Insurance fix: Streamlines insurance. Insurance only executes when enabled. (#2550) 2026-07-26 09:47:49 -07:00
Khaldun fix: Removes unnecessary dictionary removal guards 2026-08-08 11:43:10 -07:00
ML Quests fix: Removes unnecessary dictionary removal guards 2026-08-08 11:43:10 -07:00
Party fix: Eliminates double lookup with Contains->Remove (#2539) 2026-07-19 09:26:27 -07:00
Pathing fix: Removes unnecessary dictionary removal guards 2026-08-08 11:43:10 -07:00
Plants feat: Pre-Publish 14 Crafting (supersedes #2181, #2381) (#2476) 2026-06-07 20:27:22 -07:00
Player Murder System fix: Removes unnecessary dictionary removal guards 2026-08-08 11:43:10 -07:00
Quests refactor: decompose mobile/corpse hair, delete VirtualHairInfo, fix removal serial (#2462) (#2463) 2026-06-06 14:33:28 -07:00
Spawners refactor(spawners): replace DynamicJson with typed SpawnerDto records (#2505) 2026-06-25 23:24:45 -07:00
Stealables feat(throwing): wire SA loot flavor + Valkyrie's Glaive stealable (#2512) 2026-07-02 22:28:55 -07:00
Treasures of Tokuno fix: Optimizes items to use default weights. (Part 1) (#2240) 2025-07-24 14:44:39 -07:00
UltimaStore fix: Fixes thread guard and cleans up incoming packet reader (#1641) 2023-12-19 17:04:09 -08:00
Veteran Rewards feat: Pre-Publish 14 Crafting (supersedes #2181, #2381) (#2476) 2026-06-07 20:27:22 -07:00
Virtues fix: Removes unnecessary dictionary removal guards 2026-08-08 11:43:10 -07:00