Module: Mesa Branch: master Commit: a09a8ec12d76e1fb1583fa99cf9f48246c108d7b URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=a09a8ec12d76e1fb1583fa99cf9f48246c108d7b
Author: Kenneth Graunke <[email protected]> Date: Tue Sep 7 16:25:53 2010 -0700 glsl: Make sure shader source isn't NULL. This should only occur if glCompileShader is called without a prior call to glShaderSource. An empty source program should be the empty string. --- src/mesa/program/ir_to_mesa.cpp | 8 ++++++++ 1 files changed, 8 insertions(+), 0 deletions(-) diff --git a/src/mesa/program/ir_to_mesa.cpp b/src/mesa/program/ir_to_mesa.cpp index 1a260c7..4f6535f 100644 --- a/src/mesa/program/ir_to_mesa.cpp +++ b/src/mesa/program/ir_to_mesa.cpp @@ -2755,6 +2755,14 @@ _mesa_glsl_compile_shader(GLcontext *ctx, struct gl_shader *shader) new(shader) _mesa_glsl_parse_state(ctx, shader->Type, shader); const char *source = shader->Source; + /* Check if the user called glCompileShader without first calling + * glShaderSource. This should fail to compile, but not raise a GL_ERROR. + */ + if (source == NULL) { + shader->CompileStatus = GL_FALSE; + return; + } + state->error = preprocess(state, &source, &state->info_log, &ctx->Extensions); _______________________________________________ mesa-commit mailing list [email protected] http://lists.freedesktop.org/mailman/listinfo/mesa-commit
