linker: Don't dynamically allocate slots for linked shaders
authorIan Romanick <ian.d.romanick@intel.com>
Wed, 30 Jun 2010 00:58:43 +0000 (17:58 -0700)
committerIan Romanick <ian.d.romanick@intel.com>
Wed, 30 Jun 2010 19:20:44 +0000 (12:20 -0700)
The can be at most one shader per stage.  There are currently only two
stages.  There is zero reason to dynamically size this array.

src/glsl/linker.cpp
src/mesa/main/mtypes.h

index a53e91d2eff8e52b8b1acf6284bebd2c09538e18..11fccba378676c8bcda430a8fac6ef1888954805 100644 (file)
@@ -823,8 +823,6 @@ link_shaders(struct gl_shader_program *prog)
       goto done;
 
 
-   prog->_LinkedShaders = (struct gl_shader **)
-      calloc(2, sizeof(struct gl_shader *));
    prog->_NumLinkedShaders = 0;
 
    if (num_vert_shaders > 0) {
index bc90b1e0441b4b3e440017f8fa145cc23342c1e3..9a36740c415b62ec8ee4676c842e2bc6dd849ff6 100644 (file)
@@ -2006,8 +2006,13 @@ struct gl_shader_program
    GLboolean _Used;        /**< Ever used for drawing? */
    GLchar *InfoLog;
 
+   /**
+    * Per-stage shaders resulting from the first stage of linking.
+    */
+   /*@{*/
    GLuint _NumLinkedShaders;
-   struct gl_shader **_LinkedShaders;
+   struct gl_shader *_LinkedShaders[2];
+   /*@}*/
 };