You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
fix(animated-static-reload): walk sequenceArray to avoid anim-thread race
NiControllerManager::activeSequences is mutated per-frame by the animation
worker thread. HookShouldSaveAnimationOnSaving was reading it from the save
thread with no lock, corrupting the engine's BSTScatterTable and tripping
the "Scatter table has been trashed" assert mid-save.
Walk the owned sequenceArray instead (populated only on AddSequence /
RemoveSequence during model setup and teardown) with a small sanity bound
on count and capacity. Per-sequence state and cycleType are 32-bit aligned
reads so an unlocked walk at worst flips one ref's verdict.
Split the hook into DoCheck plus a SafeCheck SEH shim so the GFx/Ni locals
do not collide with __try (C2712).
0 commit comments