Don't allocate name strings for empty symbols

This removes unnecessary memory allocations.

BUG=angleproject:2267
TEST=angle_unittests

Change-Id: Ide575ea19ab2f8e9fc93092490f1352efa6024a3
Reviewed-on: https://chromium-review.googlesource.com/817415
Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
diff --git a/src/compiler/translator/OutputGLSLBase.cpp b/src/compiler/translator/OutputGLSLBase.cpp
index 488921d..9d02919 100644
--- a/src/compiler/translator/OutputGLSLBase.cpp
+++ b/src/compiler/translator/OutputGLSLBase.cpp
@@ -585,7 +585,7 @@
                 TString fieldName = field->name();
                 if (structure->symbolType() == SymbolType::UserDefined ||
                     structure->symbolType() == SymbolType::Empty)
-                    fieldName = hashName(TName(fieldName));
+                    fieldName = hashName(TName(&fieldName));
 
                 out << fieldName;
                 visitChildren = false;
@@ -604,11 +604,11 @@
                 ASSERT(interfaceBlock->symbolType() != SymbolType::Empty);
                 if (interfaceBlock->symbolType() == SymbolType::UserDefined)
                 {
-                    fieldName = hashName(TName(fieldName));
+                    fieldName = hashName(TName(&fieldName));
                 }
                 else
                 {
-                    ASSERT(interfaceBlock->name() == "gl_PerVertex");
+                    ASSERT(*interfaceBlock->name() == "gl_PerVertex");
                 }
 
                 out << fieldName;
@@ -1177,7 +1177,7 @@
         const TField *field = fields[i];
         if (writeVariablePrecision(field->type()->getPrecision()))
             out << " ";
-        out << getTypeName(*field->type()) << " " << hashName(TName(field->name()));
+        out << getTypeName(*field->type()) << " " << hashName(TName(&field->name()));
         if (field->type()->isArray())
             out << ArrayString(*field->type());
         out << ";\n";
@@ -1257,7 +1257,7 @@
 
         if (writeVariablePrecision(field->type()->getPrecision()))
             out << " ";
-        out << getTypeName(*field->type()) << " " << hashName(TName(field->name()));
+        out << getTypeName(*field->type()) << " " << hashName(TName(&field->name()));
         if (field->type()->isArray())
             out << ArrayString(*field->type());
         out << ";\n";