glsl2: check for _NumLinkedShaders being 0
authorTörök Edvin <edwintorok@gmail.com>
Sat, 4 Sep 2010 10:48:24 +0000 (13:48 +0300)
committerIan Romanick <ian.d.romanick@intel.com>
Tue, 7 Sep 2010 19:27:07 +0000 (12:27 -0700)
Otherwise spring 0.82+.4.0 crashes when starting a game
because prog->_LinkedShaders[0] is NULL.

This also fixes piglit test cases glsl-link-empty-prog-0[12].

src/glsl/linker.cpp

index e0823c3..02c7c29 100644 (file)
@@ -1476,7 +1476,7 @@ link_shaders(GLcontext *ctx, struct gl_shader_program *prog)
 
    assign_uniform_locations(prog);
 
-   if (prog->_LinkedShaders[0]->Type == GL_VERTEX_SHADER) {
+   if (prog->_NumLinkedShaders && prog->_LinkedShaders[0]->Type == GL_VERTEX_SHADER) {
       /* FINISHME: The value of the max_attribute_index parameter is
        * FINISHME: implementation dependent based on the value of
        * FINISHME: GL_MAX_VERTEX_ATTRIBS.  GL_MAX_VERTEX_ATTRIBS must be