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, ...@@ -168,18 +168,15 @@ void InsertInitCode(TIntermSequence *mainBody,
{ {
for (const auto &var : variables) for (const auto &var : variables)
{ {
TString name = TString(var.name.c_str()); // Note that tempVariableName will reference a short-lived char array here - that's fine
size_t pos = name.find_last_of('['); // since we're only using it to find symbols.
if (pos != TString::npos) ImmutableString tempVariableName(var.name.c_str(), var.name.length());
{
name = name.substr(0, pos);
}
TIntermTyped *initializedSymbol = nullptr; TIntermTyped *initializedSymbol = nullptr;
if (var.isBuiltIn()) if (var.isBuiltIn())
{ {
initializedSymbol = ReferenceBuiltInVariable(ImmutableString(name.c_str()), initializedSymbol =
*symbolTable, shaderVersion); ReferenceBuiltInVariable(tempVariableName, *symbolTable, shaderVersion);
if (initializedSymbol->getQualifier() == EvqFragData && if (initializedSymbol->getQualifier() == EvqFragData &&
!IsExtensionEnabled(extensionBehavior, TExtension::EXT_draw_buffers)) !IsExtensionEnabled(extensionBehavior, TExtension::EXT_draw_buffers))
{ {
...@@ -195,8 +192,7 @@ void InsertInitCode(TIntermSequence *mainBody, ...@@ -195,8 +192,7 @@ void InsertInitCode(TIntermSequence *mainBody,
} }
else else
{ {
initializedSymbol = initializedSymbol = ReferenceGlobalVariable(tempVariableName, *symbolTable);
ReferenceGlobalVariable(ImmutableString(name.c_str()), *symbolTable);
} }
ASSERT(initializedSymbol != nullptr); 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