Fix #1060: Could crash if using --source-entry-point with -e; fixed.

This commit is contained in:
John Kessenich 2017-09-29 17:51:52 -06:00
parent 5a57ca680f
commit 3693e631f5
2 changed files with 6 additions and 2 deletions

View File

@ -781,8 +781,12 @@ void CompileAndLinkShaderUnits(std::vector<ShaderCompUnit> compUnits)
shader->setStringsWithLengthsAndNames(compUnit.text, NULL, compUnit.fileNameList, compUnit.count); shader->setStringsWithLengthsAndNames(compUnit.text, NULL, compUnit.fileNameList, compUnit.count);
if (entryPointName) // HLSL todo: this needs to be tracked per compUnits if (entryPointName) // HLSL todo: this needs to be tracked per compUnits
shader->setEntryPoint(entryPointName); shader->setEntryPoint(entryPointName);
if (sourceEntryPointName) if (sourceEntryPointName) {
if (entryPointName == nullptr)
printf("Warning: Changing source entry point name without setting an entry-point name.\n"
"Use '-e <name>'.\n");
shader->setSourceEntryPoint(sourceEntryPointName); shader->setSourceEntryPoint(sourceEntryPointName);
}
if (UserPreamble.isSet()) if (UserPreamble.isSet())
shader->setPreamble(UserPreamble.get()); shader->setPreamble(UserPreamble.get());
shader->addProcesses(Processes); shader->addProcesses(Processes);

View File

@ -152,7 +152,7 @@ public:
{ {
// Replace the entry point name given in the shader with the real entry point name, // Replace the entry point name given in the shader with the real entry point name,
// if there is a substitution. // if there is a substitution.
if (name != nullptr && *name == sourceEntryPointName) if (name != nullptr && *name == sourceEntryPointName && intermediate.getEntryPointName().size() > 0)
name = NewPoolTString(intermediate.getEntryPointName().c_str()); name = NewPoolTString(intermediate.getEntryPointName().c_str());
} }