Only store innermost array offset in VariableLocation

Separate entries will be generated for each innermost array of arrays
of arrays in the variable tables. Because of this VariableLocation
actually only needs to store the innermost array index.

BUG=angleproject:2125
TEST=angle_end2end_tests

Change-Id: Id1ee35b3cecfc011d96b58e43cf0b1cccbfed408
Reviewed-on: https://chromium-review.googlesource.com/741742
Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
diff --git a/src/libANGLE/renderer/gl/ProgramGL.cpp b/src/libANGLE/renderer/gl/ProgramGL.cpp
index 0ebf74b..b1a0c3f 100644
--- a/src/libANGLE/renderer/gl/ProgramGL.cpp
+++ b/src/libANGLE/renderer/gl/ProgramGL.cpp
@@ -667,7 +667,7 @@
         {
             ASSERT(angle::EndsWith(uniform.mappedName, "[0]"));
             fullNameStr << uniform.mappedName.substr(0, uniform.mappedName.length() - 3);
-            fullNameStr << "[" << entry.arrayIndices[0] << "]";
+            fullNameStr << "[" << entry.arrayIndex << "]";
         }
         else
         {