Fix handling of shader source with fixed length.

BUG=angle:837

Change-Id: Ie9c3059ad2973b0733be92b7548525ee694bb1fa
Reviewed-on: https://chromium-review.googlesource.com/231612
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Shannon Woods <shannonwoods@chromium.org>
Tested-by: Geoff Lang <geofflang@chromium.org>
diff --git a/src/libANGLE/Shader.cpp b/src/libANGLE/Shader.cpp
index 89aa87c..0a4c066 100644
--- a/src/libANGLE/Shader.cpp
+++ b/src/libANGLE/Shader.cpp
@@ -51,7 +51,14 @@
 
     for (int i = 0; i < count; i++)
     {
-        stream << string[i];
+        if (length == nullptr || length[i] < 0)
+        {
+            stream.write(string[i], std::strlen(string[i]));
+        }
+        else
+        {
+            stream.write(string[i], length[i]);
+        }
     }
 
     mSource = stream.str();