From ca503d48bff31d3990d4740751d5f6a4a48bfe5a Mon Sep 17 00:00:00 2001 From: jsmall-nvidia Date: Wed, 17 Jun 2020 12:15:29 -0400 Subject: 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. --- source/slangc/main.cpp | 36 +++++++++++++++++++----------------- 1 file changed, 19 insertions(+), 17 deletions(-) (limited to 'source/slangc/main.cpp') 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 -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; } -- cgit v1.2.3