summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorIan Romanick <[email protected]>2010-06-29 17:58:43 -0700
committerIan Romanick <[email protected]>2010-06-30 12:20:44 -0700
commitef5f1948316664055c1444d12076c7d86589a8b9 (patch)
treee69e3caf28c103fb66ceabb06b0b8aca3773668b
parentedcb9c2b062693a5974aa74725f6259023fff794 (diff)
linker: Don't dynamically allocate slots for linked shaders
The can be at most one shader per stage. There are currently only two stages. There is zero reason to dynamically size this array.
-rw-r--r--src/glsl/linker.cpp2
-rw-r--r--src/mesa/main/mtypes.h7
2 files changed, 6 insertions, 3 deletions
diff --git a/src/glsl/linker.cpp b/src/glsl/linker.cpp
index a53e91d2eff..11fccba3786 100644
--- a/src/glsl/linker.cpp
+++ b/src/glsl/linker.cpp
@@ -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) {
diff --git a/src/mesa/main/mtypes.h b/src/mesa/main/mtypes.h
index bc90b1e0441..9a36740c415 100644
--- a/src/mesa/main/mtypes.h
+++ b/src/mesa/main/mtypes.h
@@ -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];
+ /*@}*/
};