From 252f489eaae3233e6dc241d3df86e0558e90966f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Vladim=C3=ADr=20Vondru=C5=A1?= Date: Tue, 11 Jun 2013 00:51:07 +0200 Subject: [PATCH] Don't query shader info log if it contains only '\0' character. --- src/AbstractShaderProgram.cpp | 10 ++++------ src/Shader.cpp | 5 ++--- 2 files changed, 6 insertions(+), 9 deletions(-) diff --git a/src/AbstractShaderProgram.cpp b/src/AbstractShaderProgram.cpp index af7e6a218..6e892d7e8 100644 --- a/src/AbstractShaderProgram.cpp +++ b/src/AbstractShaderProgram.cpp @@ -116,10 +116,9 @@ std::pair AbstractShaderProgram::validate() { /* Error or warning message. The string is returned null-terminated, scrap the \0 at the end afterwards */ std::string message(logLength, '\n'); - if(!message.empty()) { + if(message.size() > 1) glGetProgramInfoLog(_id, message.size(), nullptr, &message[0]); - message.resize(logLength-1); - } + message.resize(std::max(logLength, 1)-1); return {success, std::move(message)}; } @@ -159,10 +158,9 @@ bool AbstractShaderProgram::link() { /* Error or warning message. The string is returned null-terminated, scrap the \0 at the end afterwards */ std::string message(logLength, '\n'); - if(!message.empty()) { + if(message.size() > 1) glGetProgramInfoLog(_id, message.size(), nullptr, &message[0]); - message.resize(logLength-1); - } + message.resize(std::max(logLength, 1)-1); /* Show error log and delete shader */ if(!success) { diff --git a/src/Shader.cpp b/src/Shader.cpp index f13b1d383..d71cea9bd 100644 --- a/src/Shader.cpp +++ b/src/Shader.cpp @@ -168,10 +168,9 @@ bool Shader::compile() { /* Error or warning message. The string is returned null-terminated, scrap the \0 at the end afterwards */ std::string message(logLength, '\0'); - if(!message.empty()) { + if(message.size() > 1) glGetShaderInfoLog(_id, message.size(), nullptr, &message[0]); - message.resize(logLength-1); - } + message.resize(std::max(logLength, 1)-1); /* Show error log */ if(!success) {