ModernUO/Projects
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
..
Application fix: Bumps dependencies. (#2531) 2026-07-14 15:17:55 -07:00
BuildTool fix: Require only runtime packages on Linux, and check ICU and tzdata the way the runtime does (#2561) 2026-08-07 15:03:08 -07:00
Logger fix: Bumps dependencies. (#2531) 2026-07-14 15:17:55 -07:00
Server fix: Removes unnecessary dictionary removal guards 2026-08-08 11:43:10 -07:00
Server.Tests feat(network): allowlist false-positive IPs, escalate on behavior (#2556) 2026-07-30 23:12:17 -07:00
UOContent fix: Removes unnecessary dictionary removal guards 2026-08-08 11:43:10 -07:00
UOContent.Tests fix: Bind the login auth id to its account and drop the redundant verify (#2564) 2026-08-08 09:25:42 -07:00