Copy cached Time-Lost radius mods per node#1920
Closed
unrealdreamz wants to merge 1 commit into
Closed
Conversation
Contributor
|
No longer an issue, not sure when we fixed it in PoB |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Fixes #717
Summary
Root Cause
The Time-Lost / Timeless radius-jewel fast path caches the generated small/notable mod lists once, then reuses those same mod table references for every matching passive node.
buildModListForNodelater mutates each node-local mod to add or removeCondition:WeaponSet1/2. BecauseModList:AddListinserts references, not copies, a weapon-set passive and a normal passive could mutate the same cached mod object. That let weapon-set conditions leak between passives, matching the Against the Darkness mana overcount reported in #717.Fix
AddListcalls with copied insertion for both small and notable passive cached mods.cachevariable after refreshing stale radius-jewel cache data so the current node uses the rebuilt cache immediately.TestRadiusJewels_spec.luato prove a weapon-set passive keeps itsWeaponSet2condition after a normal passive using the same cached Time-Lost mod is processed.Validation
gh auth status-> authenticated asunrealdreamz.#717 Against the Darkness Time-Lost Diamond-> no duplicate open PR found.git diff --check-> passed; Git only reported existing Windows LF-to-CRLF checkout warnings.git diff --cached --check-> passed; Git only reported existing Windows LF-to-CRLF checkout warnings.git show --check --stat --oneline --no-renames HEAD-> passed.lua,luajit,busted,docker, ordocker-composeon PATH.Risk / Rollback
Risk is limited to Time-Lost / Timeless cached radius-jewel mods. The change preserves the existing cache and parser behavior, but prevents later node-specific mutation from writing back into cached mod objects. Rollback is the single commit if CI exposes an unexpected fixture dependency on shared references.