Make unique id counter a member of TSymbolTable

This makes unique id counting thread-safe.

BUG=angleproject:624
TEST=angle_unittests

Change-Id: Ie0f2c7e574470b39750d37d2181c790bc874b275
Reviewed-on: https://chromium-review.googlesource.com/570419
Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
diff --git a/src/compiler/translator/ExpandIntegerPowExpressions.cpp b/src/compiler/translator/ExpandIntegerPowExpressions.cpp
index 5cea9e9..f17dd73 100644
--- a/src/compiler/translator/ExpandIntegerPowExpressions.cpp
+++ b/src/compiler/translator/ExpandIntegerPowExpressions.cpp
@@ -22,10 +22,10 @@
 class Traverser : public TIntermTraverser
 {
   public:
-    static void Apply(TIntermNode *root, TSymbolUniqueId *temporaryId);
+    static void Apply(TIntermNode *root, TSymbolTable *symbolTable);
 
   private:
-    Traverser();
+    Traverser(TSymbolTable *symbolTable);
     bool visitAggregate(Visit visit, TIntermAggregate *node) override;
     void nextIteration();
 
@@ -33,10 +33,9 @@
 };
 
 // static
-void Traverser::Apply(TIntermNode *root, TSymbolUniqueId *temporaryId)
+void Traverser::Apply(TIntermNode *root, TSymbolTable *symbolTable)
 {
-    Traverser traverser;
-    traverser.useTemporaryId(temporaryId);
+    Traverser traverser(symbolTable);
     do
     {
         traverser.nextIteration();
@@ -48,7 +47,7 @@
     } while (traverser.mFound);
 }
 
-Traverser::Traverser() : TIntermTraverser(true, false, false)
+Traverser::Traverser(TSymbolTable *symbolTable) : TIntermTraverser(true, false, false, symbolTable)
 {
 }
 
@@ -146,9 +145,9 @@
 
 }  // anonymous namespace
 
-void ExpandIntegerPowExpressions(TIntermNode *root, TSymbolUniqueId *temporaryId)
+void ExpandIntegerPowExpressions(TIntermNode *root, TSymbolTable *symbolTable)
 {
-    Traverser::Apply(root, temporaryId);
+    Traverser::Apply(root, symbolTable);
 }
 
 }  // namespace sh