mesa: remove Driver.DeleteShader
authorMarek Olšák <marek.olsak@amd.com>
Sun, 27 Sep 2015 19:28:22 +0000 (21:28 +0200)
committerMarek Olšák <marek.olsak@amd.com>
Sat, 3 Oct 2015 20:06:08 +0000 (22:06 +0200)
Nothing overrides it.

Reviewed-by: Brian Paul <brianp@vmware.com>
Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
src/glsl/linker.cpp
src/glsl/standalone_scaffolding.cpp
src/glsl/standalone_scaffolding.h
src/mesa/main/dd.h
src/mesa/main/shaderobj.c
src/mesa/main/shaderobj.h
src/mesa/main/shared.c

index dbf300ac6915f32a86592d4257ad6104ba00ecd0..826a1881baf40b353877cae0459648b7da2cb12d 100644 (file)
@@ -2132,7 +2132,7 @@ link_intrastage_shaders(void *mem_ctx,
 
 
    if (!ok) {
-      ctx->Driver.DeleteShader(ctx, linked);
+      _mesa_delete_shader(ctx, linked);
       return NULL;
    }
 
@@ -3732,7 +3732,7 @@ link_shaders(struct gl_context *ctx, struct gl_shader_program *prog)
 
    for (unsigned int i = 0; i < MESA_SHADER_STAGES; i++) {
       if (prog->_LinkedShaders[i] != NULL)
-        ctx->Driver.DeleteShader(ctx, prog->_LinkedShaders[i]);
+        _mesa_delete_shader(ctx, prog->_LinkedShaders[i]);
 
       prog->_LinkedShaders[i] = NULL;
    }
@@ -3747,7 +3747,7 @@ link_shaders(struct gl_context *ctx, struct gl_shader_program *prog)
 
          if (!prog->LinkStatus) {
             if (sh)
-               ctx->Driver.DeleteShader(ctx, sh);
+               _mesa_delete_shader(ctx, sh);
             goto done;
          }
 
@@ -3770,7 +3770,7 @@ link_shaders(struct gl_context *ctx, struct gl_shader_program *prog)
          }
          if (!prog->LinkStatus) {
             if (sh)
-               ctx->Driver.DeleteShader(ctx, sh);
+               _mesa_delete_shader(ctx, sh);
             goto done;
          }
 
index ea9334fd7b7f403323ed98c988e83af4ee286027..f08e2d5350633030d3229846218a111b2796591d 100644 (file)
@@ -85,6 +85,14 @@ _mesa_new_shader(struct gl_context *ctx, GLuint name, GLenum type)
    return shader;
 }
 
+void
+_mesa_delete_shader(struct gl_context *ctx, struct gl_shader *sh)
+{
+   free((void *)sh->Source);
+   free(sh->Label);
+   ralloc_free(sh);
+}
+
 void
 _mesa_clear_shader_program_data(struct gl_shader_program *shProg)
 {
index dc6fb640f15b1ef762f0768e4ba9f0ac8d962664..a9ca5e4e3d30c50fe04e4cd2890a4b01ab8c9835 100644 (file)
@@ -44,6 +44,9 @@ _mesa_reference_shader(struct gl_context *ctx, struct gl_shader **ptr,
 extern "C" struct gl_shader *
 _mesa_new_shader(struct gl_context *ctx, GLuint name, GLenum type);
 
+extern "C" void
+_mesa_delete_shader(struct gl_context *ctx, struct gl_shader *sh);
+
 extern "C" void
 _mesa_clear_shader_program_data(struct gl_shader_program *);
 
index 88f37273e1e5ed576e3d1750feb8e1083f21f54d..a1cdfedd04f4c106fb9611968ee3997701384b61 100644 (file)
@@ -785,7 +785,6 @@ struct dd_function_table {
    /*@{*/
    struct gl_shader *(*NewShader)(struct gl_context *ctx,
                                   GLuint name, GLenum type);
-   void (*DeleteShader)(struct gl_context *ctx, struct gl_shader *shader);
    struct gl_shader_program *(*NewShaderProgram)(GLuint name);
    void (*DeleteShaderProgram)(struct gl_context *ctx,
                                struct gl_shader_program *shProg);
index 5cd37d7e4c49317b3f23f1f295ab045525a6e041..90600fffc4b3b7055bff510f2eb2a86465318005 100644 (file)
@@ -74,7 +74,7 @@ _mesa_reference_shader(struct gl_context *ctx, struct gl_shader **ptr,
       if (deleteFlag) {
         if (old->Name != 0)
            _mesa_HashRemove(ctx->Shared->ShaderObjects, old->Name);
-         ctx->Driver.DeleteShader(ctx, old);
+         _mesa_delete_shader(ctx, old);
       }
 
       *ptr = NULL;
@@ -116,9 +116,8 @@ _mesa_new_shader(struct gl_context *ctx, GLuint name, GLenum type)
 
 /**
  * Delete a shader object.
- * Called via ctx->Driver.DeleteShader().
  */
-static void
+void
 _mesa_delete_shader(struct gl_context *ctx, struct gl_shader *sh)
 {
    free((void *)sh->Source);
@@ -362,7 +361,7 @@ _mesa_free_shader_program_data(struct gl_context *ctx,
 
    for (sh = 0; sh < MESA_SHADER_STAGES; sh++) {
       if (shProg->_LinkedShaders[sh] != NULL) {
-        ctx->Driver.DeleteShader(ctx, shProg->_LinkedShaders[sh]);
+        _mesa_delete_shader(ctx, shProg->_LinkedShaders[sh]);
         shProg->_LinkedShaders[sh] = NULL;
       }
    }
@@ -439,7 +438,6 @@ void
 _mesa_init_shader_object_functions(struct dd_function_table *driver)
 {
    driver->NewShader = _mesa_new_shader;
-   driver->DeleteShader = _mesa_delete_shader;
    driver->NewShaderProgram = _mesa_new_shader_program;
    driver->DeleteShaderProgram = _mesa_delete_shader_program;
    driver->LinkShader = _mesa_ir_link_shader;
index 943044e37cdd7984284c09281e5a0ec0a8835ccb..8add6425a9ab8d014a3b486fae9220a47aeb85fa 100644 (file)
@@ -82,6 +82,9 @@ _mesa_init_shader(struct gl_context *ctx, struct gl_shader *shader);
 extern struct gl_shader *
 _mesa_new_shader(struct gl_context *ctx, GLuint name, GLenum type);
 
+extern void
+_mesa_delete_shader(struct gl_context *ctx, struct gl_shader *sh);
+
 extern struct gl_shader_program *
 _mesa_lookup_shader_program(struct gl_context *ctx, GLuint name);
 
index d5ac9f1fb13380868ff6ec0ad23f0dd246ec4766..7ab89d08584255d96da4520d399c932403c719c9 100644 (file)
@@ -219,7 +219,7 @@ delete_shader_cb(GLuint id, void *data, void *userData)
    struct gl_context *ctx = (struct gl_context *) userData;
    struct gl_shader *sh = (struct gl_shader *) data;
    if (_mesa_validate_shader_target(ctx, sh->Type)) {
-      ctx->Driver.DeleteShader(ctx, sh);
+      _mesa_delete_shader(ctx, sh);
    }
    else {
       struct gl_shader_program *shProg = (struct gl_shader_program *) data;