aboutsummaryrefslogtreecommitdiff
path: root/src/core/device_memory.cpp
diff options
context:
space:
mode:
authorSssnowyyy <78863999+Sssnowyyy@users.noreply.github.com>2026-11-02 11:29:14 -0500
committerSssnowyyy <78863999+Sssnowyyy@users.noreply.github.com>2026-11-02 14:53:47 -0500
commit8b0666b74868da8221d9e3ef3995f3a862ee24b6 (patch)
tree5537f23ab1306475a2df29bda7637058a11d8501 /src/core/device_memory.cpp
parentbda49e810b5955bff8474e7b8f2b09eab51e9be2 (diff)
shader: restore the handle build depth when a build throws
BuildHandleProgram incremented g_handle_depth and decremented it at the end, so a NotImplementedException from BuildHandleNode left the thread-local depth above zero. That thread never cleared g_handle_slots again, and stale IR::Inst* keys from an earlier program could match instructions of a later one (a freed instruction's address can be reused). Do the decrement and the outermost clear in SCOPE_EXIT. Follow-up to e23b0f2fab. Assisted-by: Claude Sonnet 5.5 (implementation and commit message)
Diffstat (limited to 'src/core/device_memory.cpp')
0 files changed, 0 insertions, 0 deletions