Commit bf107be4 by Olli Etuaho Committed by Commit Bot

Don't search for nonexistent brackets in InitializeVariables

Array brackets are not included in ShaderVariable::name, so they don't need to be pruned from there either when using the name to look up the variable. BUG=angleproject:2267 TEST=angle_unittests --gtest_filter=*InitOutput*Array* Change-Id: I2b80a88c1d67f7f0dde12880bcfb35fb6d861cd0 Reviewed-on: https://chromium-review.googlesource.com/909109Reviewed-by: 's avatarJamie Madill <jmadill@chromium.org> Reviewed-by: 's avatarCorentin Wallez <cwallez@chromium.org> Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
parent d9ed9c1a
......@@ -168,18 +168,15 @@ void InsertInitCode(TIntermSequence *mainBody,
{
for (const auto &var : variables)
{
TString name = TString(var.name.c_str());
size_t pos = name.find_last_of('[');
if (pos != TString::npos)
{
name = name.substr(0, pos);
}
// Note that tempVariableName will reference a short-lived char array here - that's fine
// since we're only using it to find symbols.
ImmutableString tempVariableName(var.name.c_str(), var.name.length());
TIntermTyped *initializedSymbol = nullptr;
if (var.isBuiltIn())
{
initializedSymbol = ReferenceBuiltInVariable(ImmutableString(name.c_str()),
*symbolTable, shaderVersion);
initializedSymbol =
ReferenceBuiltInVariable(tempVariableName, *symbolTable, shaderVersion);
if (initializedSymbol->getQualifier() == EvqFragData &&
!IsExtensionEnabled(extensionBehavior, TExtension::EXT_draw_buffers))
{
......@@ -195,8 +192,7 @@ void InsertInitCode(TIntermSequence *mainBody,
}
else
{
initializedSymbol =
ReferenceGlobalVariable(ImmutableString(name.c_str()), *symbolTable);
initializedSymbol = ReferenceGlobalVariable(tempVariableName, *symbolTable);
}
ASSERT(initializedSymbol != nullptr);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment