diff options
| author | Jay Kwak <82421531+jkwak-work@users.noreply.github.com> | 2025-06-11 22:33:16 -0700 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2025-06-12 05:33:16 +0000 |
| commit | 7dad68f869502e5c0ab32c12cbf8db866e020713 (patch) | |
| tree | 1df62f9536639f06706bd1a14031c6d5b62f78a3 /source/slang/slang-emit.cpp | |
| parent | c83a6d5b83a0b12f7029fd17fc8037beddb79834 (diff) | |
Fix intermittent debug failures with Debug build (#7369)
This PR replaces enable/disable style C function calls with C++ RAII style code.
In debug build, when an assertion failed in between enable and disable functions, an exception is thrown and the disable function is not called. RAII style code is safer for an exception
Diffstat (limited to 'source/slang/slang-emit.cpp')
| -rw-r--r-- | source/slang/slang-emit.cpp | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/source/slang/slang-emit.cpp b/source/slang/slang-emit.cpp index c0c1ba75a..f4d535466 100644 --- a/source/slang/slang-emit.cpp +++ b/source/slang/slang-emit.cpp @@ -950,9 +950,10 @@ Result linkAndOptimizeIR( if (requiredLoweringPassSet.autodiff) { dumpIRIfEnabled(codeGenContext, irModule, "BEFORE-AUTODIFF"); - enableIRValidationAtInsert(); - changed |= processAutodiffCalls(targetProgram, irModule, sink); - disableIRValidationAtInsert(); + { + auto validationScope = enableIRValidationScope(); + changed |= processAutodiffCalls(targetProgram, irModule, sink); + } dumpIRIfEnabled(codeGenContext, irModule, "AFTER-AUTODIFF"); } |
