mesa: Make compile_shader() take a gl_shader, not a GLuint.
[mesa.git] / src / mesa / main / shaderapi.c
index cdf15b48a0d233909b9fefc411502ed544f85a21..43c4188cf2f75d030d05154001e39515ac609ff7 100644 (file)
@@ -960,11 +960,8 @@ shader_source(struct gl_shader *sh, const GLchar *source)
  * Compile a shader.
  */
 static void
-compile_shader(struct gl_context *ctx, GLuint shaderObj)
+compile_shader(struct gl_context *ctx, struct gl_shader *sh)
 {
-   struct gl_shader *sh;
-
-   sh = _mesa_lookup_shader_err(ctx, shaderObj, "glCompileShader");
    if (!sh)
       return;
 
@@ -1270,7 +1267,8 @@ _mesa_CompileShader(GLuint shaderObj)
    GET_CURRENT_CONTEXT(ctx);
    if (MESA_VERBOSE & VERBOSE_API)
       _mesa_debug(ctx, "glCompileShader %u\n", shaderObj);
-   compile_shader(ctx, shaderObj);
+   compile_shader(ctx,
+                  _mesa_lookup_shader_err(ctx, shaderObj, "glCompileShader"));
 }
 
 
@@ -2154,18 +2152,17 @@ _mesa_CreateShaderProgramv(GLenum type, GLsizei count,
    }
 
    if (shader) {
-      _mesa_ShaderSource(shader, count, strings, NULL);
+      struct gl_shader *sh = _mesa_lookup_shader(ctx, shader);
 
-      compile_shader(ctx, shader);
+      _mesa_ShaderSource(shader, count, strings, NULL);
+      compile_shader(ctx, sh);
 
       program = create_shader_program(ctx);
       if (program) {
         struct gl_shader_program *shProg;
-        struct gl_shader *sh;
         GLint compiled = GL_FALSE;
 
         shProg = _mesa_lookup_shader_program(ctx, program);
-        sh = _mesa_lookup_shader(ctx, shader);
 
         shProg->SeparateShader = GL_TRUE;