diff options
| author | jsmall-nvidia <jsmall@nvidia.com> | 2020-06-17 12:15:29 -0400 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2020-06-17 12:15:29 -0400 |
| commit | ca503d48bff31d3990d4740751d5f6a4a48bfe5a (patch) | |
| tree | 929f45089a4376191d94c315470025dad7802e30 /source | |
| parent | 40370acda00ed35f43ff047201eec3d386564080 (diff) | |
Hotfix/slangc unreleased compile request (#1393)
* Releases compile request if there is an error.
* Arrange so that caller can clean up CompileRequest so don't have to capture all paths.
Diffstat (limited to 'source')
| -rw-r--r-- | source/slangc/main.cpp | 36 |
1 files changed, 19 insertions, 17 deletions
diff --git a/source/slangc/main.cpp b/source/slangc/main.cpp index 3074f3540..931737a41 100644 --- a/source/slangc/main.cpp +++ b/source/slangc/main.cpp @@ -11,7 +11,13 @@ using namespace Slang; #include <assert.h> -static void diagnosticCallback( +#ifdef _WIN32 +#define MAIN slangc_main +#else +#define MAIN main +#endif + +static void _diagnosticCallback( char const* message, void* /*userData*/) { @@ -20,23 +26,9 @@ static void diagnosticCallback( stdError.flush(); } -#ifdef _WIN32 -#define MAIN slangc_main -#else -#define MAIN main -#endif - -SLANG_TEST_TOOL_API SlangResult innerMain(StdWriters* stdWriters, SlangSession* session, int argc, const char*const* argv) +static SlangResult _compile(SlangCompileRequest* compileRequest, int argc, const char*const* argv) { - StdWriters::setSingleton(stdWriters); - - SlangCompileRequest* compileRequest = spCreateCompileRequest(session); - - spSetDiagnosticCallback( - compileRequest, - &diagnosticCallback, - nullptr); - + spSetDiagnosticCallback(compileRequest, &_diagnosticCallback, nullptr); spSetCommandLineCompilerMode(compileRequest); char const* appName = "slangc"; @@ -71,8 +63,18 @@ SLANG_TEST_TOOL_API SlangResult innerMain(StdWriters* stdWriters, SlangSession* } #endif + return res; +} + +SLANG_TEST_TOOL_API SlangResult innerMain(StdWriters* stdWriters, SlangSession* session, int argc, const char*const* argv) +{ + StdWriters::setSingleton(stdWriters); + + SlangCompileRequest* compileRequest = spCreateCompileRequest(session); + SlangResult res = _compile(compileRequest, argc, argv); // Now that we are done, clean up after ourselves spDestroyCompileRequest(compileRequest); + return res; } |
