Browse Source

Fixed love.graphics.newShader crashing when extern variables with very short names are used

Alex Szpakowski 12 years ago
parent
commit
2ccbbe1c64
1 changed files with 6 additions and 2 deletions
  1. 6 2
      src/modules/graphics/opengl/Shader.cpp

+ 6 - 2
src/modules/graphics/opengl/Shader.cpp

@@ -219,8 +219,12 @@ void Shader::mapActiveUniforms()
 		delete[] cname;
 		delete[] cname;
 
 
 		// glGetActiveUniform appends "[0]" to the end of array uniform names...
 		// glGetActiveUniform appends "[0]" to the end of array uniform names...
-		if (u.name.find("[0]") == u.name.length() - 3)
-			u.name.erase(u.name.length() - 3);
+		if (u.name.length() > 3)
+		{
+			size_t findpos = u.name.find("[0]");
+			if (findpos != std::string::npos && findpos == u.name.length() - 3)
+				u.name.erase(u.name.length() - 3);
+		}
 
 
 		if (u.location != -1)
 		if (u.location != -1)
 			uniforms[u.name] = u;
 			uniforms[u.name] = u;