From 2ccbbe1c64c31a2913426ec84499bfbe8567b8dc Mon Sep 17 00:00:00 2001 From: Alex Szpakowski Date: Thu, 11 Jul 2013 19:26:50 -0300 Subject: [PATCH] Fixed love.graphics.newShader crashing when extern variables with very short names are used --- src/modules/graphics/opengl/Shader.cpp | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/src/modules/graphics/opengl/Shader.cpp b/src/modules/graphics/opengl/Shader.cpp index d4f4e61a9..c5a926ae1 100644 --- a/src/modules/graphics/opengl/Shader.cpp +++ b/src/modules/graphics/opengl/Shader.cpp @@ -219,8 +219,12 @@ void Shader::mapActiveUniforms() delete[] cname; // 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) uniforms[u.name] = u;