summaryrefslogtreecommitdiffstats
path: root/tools/slang-capability-generator/capability-generator-main.cpp
diff options
context:
space:
mode:
authorYong He <yonghe@outlook.com>2024-07-24 11:44:13 -0700
committerGitHub <noreply@github.com>2024-07-24 11:44:13 -0700
commit657213f13d49f0d2caaa8b64c1245ec8c75fc4d7 (patch)
tree02f2a6dca56ea384c88095e75b24691d5253d204 /tools/slang-capability-generator/capability-generator-main.cpp
parenta1607f802ae0a42ffafd2c37d76779873264d371 (diff)
Cleanup global memory allocations on shutdown. (#4731)
Co-authored-by: Jay Kwak <82421531+jkwak-work@users.noreply.github.com>
Diffstat (limited to 'tools/slang-capability-generator/capability-generator-main.cpp')
-rw-r--r--tools/slang-capability-generator/capability-generator-main.cpp12
1 files changed, 10 insertions, 2 deletions
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;
}