Store TVariable* in TIntermSymbol instead of storing id
This is an intermediate step to only storing a TVariable * in
TIntermSymbol instead of copying the name.
This makes it possible to get a constant value out of a TIntermSymbol
without doing a symbol table lookup.
BUG=angleproject:2267
TEST=angle_unittests
Change-Id: Ibff588241a4ad4ac330063296273288b20a072c9
Reviewed-on: https://chromium-review.googlesource.com/829142
Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
diff --git a/src/compiler/translator/ValidateLimitations.cpp b/src/compiler/translator/ValidateLimitations.cpp
index 828f958..e43ff37 100644
--- a/src/compiler/translator/ValidateLimitations.cpp
+++ b/src/compiler/translator/ValidateLimitations.cpp
@@ -25,7 +25,7 @@
TIntermBinary *declInit = (*declSeq)[0]->getAsBinaryNode();
TIntermSymbol *symbol = declInit->getLeft()->getAsSymbolNode();
- return symbol->getId();
+ return symbol->uniqueId().get();
}
// Traverses a node to check if it represents a constant index expression.
@@ -55,7 +55,7 @@
if (mValid)
{
bool isLoopSymbol = std::find(mLoopSymbolIds.begin(), mLoopSymbolIds.end(),
- symbol->getId()) != mLoopSymbolIds.end();
+ symbol->uniqueId().get()) != mLoopSymbolIds.end();
mValid = (symbol->getQualifier() == EvqConst) || isLoopSymbol;
}
}
@@ -165,7 +165,7 @@
bool ValidateLimitationsTraverser::isLoopIndex(TIntermSymbol *symbol)
{
- return std::find(mLoopSymbolIds.begin(), mLoopSymbolIds.end(), symbol->getId()) !=
+ return std::find(mLoopSymbolIds.begin(), mLoopSymbolIds.end(), symbol->uniqueId().get()) !=
mLoopSymbolIds.end();
}
@@ -252,7 +252,7 @@
return -1;
}
- return symbol->getId();
+ return symbol->uniqueId().get();
}
bool ValidateLimitationsTraverser::validateForLoopCond(TIntermLoop *node, int indexSymbolId)
@@ -280,7 +280,7 @@
error(binOp->getLine(), "Invalid condition", "for");
return false;
}
- if (symbol->getId() != indexSymbolId)
+ if (symbol->uniqueId().get() != indexSymbolId)
{
error(symbol->getLine(), "Expected loop index", symbol->getSymbol().c_str());
return false;
@@ -351,7 +351,7 @@
error(expr->getLine(), "Invalid expression", "for");
return false;
}
- if (symbol->getId() != indexSymbolId)
+ if (symbol->uniqueId().get() != indexSymbolId)
{
error(symbol->getLine(), "Expected loop index", symbol->getSymbol().c_str());
return false;