diff options
| author | Yong He <yonghe@outlook.com> | 2024-07-24 11:44:13 -0700 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2024-07-24 11:44:13 -0700 |
| commit | 657213f13d49f0d2caaa8b64c1245ec8c75fc4d7 (patch) | |
| tree | 02f2a6dca56ea384c88095e75b24691d5253d204 /tools | |
| parent | a1607f802ae0a42ffafd2c37d76779873264d371 (diff) | |
Cleanup global memory allocations on shutdown. (#4731)
Co-authored-by: Jay Kwak <82421531+jkwak-work@users.noreply.github.com>
Diffstat (limited to 'tools')
| -rw-r--r-- | tools/render-test/render-test-main.cpp | 1 | ||||
| -rw-r--r-- | tools/slang-capability-generator/capability-generator-main.cpp | 12 | ||||
| -rw-r--r-- | tools/slang-reflection-test/slang-reflection-test-main.cpp | 2 | ||||
| -rw-r--r-- | tools/slang-spirv-embed-generator/spirv-embed-generator-main.cpp | 2 | ||||
| -rw-r--r-- | tools/slang-test/slang-test-main.cpp | 2 | ||||
| -rw-r--r-- | tools/slangd/main.cpp | 4 | ||||
| -rw-r--r-- | tools/test-server/test-server-main.cpp | 2 |
7 files changed, 18 insertions, 7 deletions
diff --git a/tools/render-test/render-test-main.cpp b/tools/render-test/render-test-main.cpp index 0cd94c046..6f67dfd1e 100644 --- a/tools/render-test/render-test-main.cpp +++ b/tools/render-test/render-test-main.cpp @@ -1545,6 +1545,7 @@ int main(int argc, char** argv) SlangResult res = innerMain(stdWriters, session, argc, argv); spDestroySession(session); + slang::shutdown(); return (int)TestToolUtil::getReturnCode(res); } diff --git a/tools/slang-capability-generator/capability-generator-main.cpp b/tools/slang-capability-generator/capability-generator-main.cpp index b08496e35..e4a4885c6 100644 --- a/tools/slang-capability-generator/capability-generator-main.cpp +++ b/tools/slang-capability-generator/capability-generator-main.cpp @@ -770,11 +770,11 @@ SlangResult generateDefinitions(DiagnosticSink* sink, List<RefPtr<CapabilityDef> } } outputUIntSetGenerator("generatorOf_kAnyTargetUIntSetBuffer", anyTargetUIntSetHash, anyTargetAtomSet); - anyTargetUIntSetHash << "const static CapabilityAtomSet kAnyTargetUIntSetBuffer = generatorOf_kAnyTargetUIntSetBuffer();\n"; + anyTargetUIntSetHash << "static CapabilityAtomSet kAnyTargetUIntSetBuffer = generatorOf_kAnyTargetUIntSetBuffer();\n"; sbCpp << anyTargetUIntSetHash; outputUIntSetGenerator("generatorOf_kAnyStageUIntSetBuffer", anyStageUIntSetHash, anyStageAtomSet); - anyStageUIntSetHash << "const static CapabilityAtomSet kAnyStageUIntSetBuffer = generatorOf_kAnyStageUIntSetBuffer();\n"; + anyStageUIntSetHash << "static CapabilityAtomSet kAnyStageUIntSetBuffer = generatorOf_kAnyStageUIntSetBuffer();\n"; sbCpp << anyStageUIntSetHash; sbHeader << "\nenum {\n"; @@ -899,6 +899,14 @@ SlangResult generateDefinitions(DiagnosticSink* sink, List<RefPtr<CapabilityDef> } sbCpp << "};\n"; + + sbCpp + << "void freeCapabilityDefs()\n" + << "{\n" + << " for (auto& cap : kCapabilityArray) { cap = CapabilityAtomSet(); }\n" + << " kAnyTargetUIntSetBuffer = CapabilityAtomSet();\n" + << " kAnyStageUIntSetBuffer = CapabilityAtomSet();\n" + << "}\n"; return SLANG_OK; } diff --git a/tools/slang-reflection-test/slang-reflection-test-main.cpp b/tools/slang-reflection-test/slang-reflection-test-main.cpp index be48d8e92..8866661b8 100644 --- a/tools/slang-reflection-test/slang-reflection-test-main.cpp +++ b/tools/slang-reflection-test/slang-reflection-test-main.cpp @@ -1446,6 +1446,6 @@ int main( SlangResult res = innerMain(stdWriters, session, argc, argv); spDestroySession(session); - + slang::shutdown(); return SLANG_FAILED(res) ? 1 : 0; } diff --git a/tools/slang-spirv-embed-generator/spirv-embed-generator-main.cpp b/tools/slang-spirv-embed-generator/spirv-embed-generator-main.cpp index 20431e872..fd29ed714 100644 --- a/tools/slang-spirv-embed-generator/spirv-embed-generator-main.cpp +++ b/tools/slang-spirv-embed-generator/spirv-embed-generator-main.cpp @@ -418,7 +418,7 @@ void writeInfo( // // Now write out the function which holds onto the static embedded info table // - line("RefPtr<SPIRVCoreGrammarInfo> SPIRVCoreGrammarInfo::getEmbeddedVersion()"); + line("RefPtr<SPIRVCoreGrammarInfo>& SPIRVCoreGrammarInfo::getEmbeddedVersion()"); line("{"); line(" static RefPtr<SPIRVCoreGrammarInfo> embedded = [](){"); line(" RefPtr<SPIRVCoreGrammarInfo> info = new SPIRVCoreGrammarInfo();"); diff --git a/tools/slang-test/slang-test-main.cpp b/tools/slang-test/slang-test-main.cpp index f9e07bdc9..cd3ca3d54 100644 --- a/tools/slang-test/slang-test-main.cpp +++ b/tools/slang-test/slang-test-main.cpp @@ -4618,7 +4618,7 @@ int main(int argc, char** argv) { const SlangResult res = innerMain(argc, argv); - Slang::RttiInfo::deallocateAll(); + slang::shutdown(); #ifdef _MSC_VER _CrtDumpMemoryLeaks(); diff --git a/tools/slangd/main.cpp b/tools/slangd/main.cpp index 7727ec135..42d6e0c1b 100644 --- a/tools/slangd/main.cpp +++ b/tools/slangd/main.cpp @@ -23,5 +23,7 @@ int main(int argc, const char* const* argv) } Slang::LanguageServerStartupOptions options; options.parse(argc, argv); - return Slang::runLanguageServer(options); + auto result = Slang::runLanguageServer(options); + slang::shutdown(); + return result; } diff --git a/tools/test-server/test-server-main.cpp b/tools/test-server/test-server-main.cpp index 750fb7faf..ba77d9c84 100644 --- a/tools/test-server/test-server-main.cpp +++ b/tools/test-server/test-server-main.cpp @@ -563,7 +563,7 @@ SlangResult _execute(int argc, const char* const* argv) TestServer server; SLANG_RETURN_ON_FAIL(server.init(argc, argv)); SLANG_RETURN_ON_FAIL(server.execute()); - + slang::shutdown(); return SLANG_OK; } |
