Duplicate reused symbol table entries.
BUG=angle:651
Change-Id: Ifce3c19d41a0a5a5ca5ee90ede528adf397d1da5
Reviewed-on: https://chromium-review.googlesource.com/204290
Tested-by: Nicolas Capens <nicolascapens@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Shannon Woods <shannonwoods@chromium.org>
diff --git a/src/compiler/translator/SymbolTable.cpp b/src/compiler/translator/SymbolTable.cpp
index aa5933d..ae4fcaa 100644
--- a/src/compiler/translator/SymbolTable.cpp
+++ b/src/compiler/translator/SymbolTable.cpp
@@ -38,21 +38,16 @@
delete (*it).second;
}
-bool TSymbolTableLevel::insert(const TString &name, TSymbol &symbol)
+bool TSymbolTableLevel::insert(TSymbol *symbol)
{
- symbol.setUniqueId(TSymbolTable::nextUniqueId());
+ symbol->setUniqueId(TSymbolTable::nextUniqueId());
// returning true means symbol was added to the table
- tInsertResult result = level.insert(tLevelPair(name, &symbol));
+ tInsertResult result = level.insert(tLevelPair(symbol->getMangledName(), symbol));
return result.second;
}
-bool TSymbolTableLevel::insert(TSymbol &symbol)
-{
- return insert(symbol.getMangledName(), symbol);
-}
-
TSymbol *TSymbolTableLevel::find(const TString &name) const
{
tLevel::const_iterator it = level.find(name);
@@ -212,7 +207,7 @@
}
}
- insert(level, *function);
+ insert(level, function);
}
TPrecision TSymbolTable::getDefaultPrecision(TBasicType type)