mesa: remove Driver.DeleteShader

Nothing overrides it.

Reviewed-by: Brian Paul <brianp@vmware.com>
Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
This commit is contained in:
Marek Olšák
2015-09-27 21:28:22 +02:00
parent 18123a732b
commit 95e0303312
7 changed files with 22 additions and 11 deletions

View File

@@ -2132,7 +2132,7 @@ link_intrastage_shaders(void *mem_ctx,
if (!ok) { if (!ok) {
ctx->Driver.DeleteShader(ctx, linked); _mesa_delete_shader(ctx, linked);
return NULL; 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++) { for (unsigned int i = 0; i < MESA_SHADER_STAGES; i++) {
if (prog->_LinkedShaders[i] != NULL) if (prog->_LinkedShaders[i] != NULL)
ctx->Driver.DeleteShader(ctx, prog->_LinkedShaders[i]); _mesa_delete_shader(ctx, prog->_LinkedShaders[i]);
prog->_LinkedShaders[i] = NULL; prog->_LinkedShaders[i] = NULL;
} }
@@ -3747,7 +3747,7 @@ link_shaders(struct gl_context *ctx, struct gl_shader_program *prog)
if (!prog->LinkStatus) { if (!prog->LinkStatus) {
if (sh) if (sh)
ctx->Driver.DeleteShader(ctx, sh); _mesa_delete_shader(ctx, sh);
goto done; goto done;
} }
@@ -3770,7 +3770,7 @@ link_shaders(struct gl_context *ctx, struct gl_shader_program *prog)
} }
if (!prog->LinkStatus) { if (!prog->LinkStatus) {
if (sh) if (sh)
ctx->Driver.DeleteShader(ctx, sh); _mesa_delete_shader(ctx, sh);
goto done; goto done;
} }

View File

@@ -85,6 +85,14 @@ _mesa_new_shader(struct gl_context *ctx, GLuint name, GLenum type)
return shader; 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 void
_mesa_clear_shader_program_data(struct gl_shader_program *shProg) _mesa_clear_shader_program_data(struct gl_shader_program *shProg)
{ {

View File

@@ -44,6 +44,9 @@ _mesa_reference_shader(struct gl_context *ctx, struct gl_shader **ptr,
extern "C" struct gl_shader * extern "C" struct gl_shader *
_mesa_new_shader(struct gl_context *ctx, GLuint name, GLenum type); _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 extern "C" void
_mesa_clear_shader_program_data(struct gl_shader_program *); _mesa_clear_shader_program_data(struct gl_shader_program *);

View File

@@ -785,7 +785,6 @@ struct dd_function_table {
/*@{*/ /*@{*/
struct gl_shader *(*NewShader)(struct gl_context *ctx, struct gl_shader *(*NewShader)(struct gl_context *ctx,
GLuint name, GLenum type); GLuint name, GLenum type);
void (*DeleteShader)(struct gl_context *ctx, struct gl_shader *shader);
struct gl_shader_program *(*NewShaderProgram)(GLuint name); struct gl_shader_program *(*NewShaderProgram)(GLuint name);
void (*DeleteShaderProgram)(struct gl_context *ctx, void (*DeleteShaderProgram)(struct gl_context *ctx,
struct gl_shader_program *shProg); struct gl_shader_program *shProg);

View File

@@ -74,7 +74,7 @@ _mesa_reference_shader(struct gl_context *ctx, struct gl_shader **ptr,
if (deleteFlag) { if (deleteFlag) {
if (old->Name != 0) if (old->Name != 0)
_mesa_HashRemove(ctx->Shared->ShaderObjects, old->Name); _mesa_HashRemove(ctx->Shared->ShaderObjects, old->Name);
ctx->Driver.DeleteShader(ctx, old); _mesa_delete_shader(ctx, old);
} }
*ptr = NULL; *ptr = NULL;
@@ -116,9 +116,8 @@ _mesa_new_shader(struct gl_context *ctx, GLuint name, GLenum type)
/** /**
* Delete a shader object. * Delete a shader object.
* Called via ctx->Driver.DeleteShader().
*/ */
static void void
_mesa_delete_shader(struct gl_context *ctx, struct gl_shader *sh) _mesa_delete_shader(struct gl_context *ctx, struct gl_shader *sh)
{ {
free((void *)sh->Source); 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++) { for (sh = 0; sh < MESA_SHADER_STAGES; sh++) {
if (shProg->_LinkedShaders[sh] != NULL) { if (shProg->_LinkedShaders[sh] != NULL) {
ctx->Driver.DeleteShader(ctx, shProg->_LinkedShaders[sh]); _mesa_delete_shader(ctx, shProg->_LinkedShaders[sh]);
shProg->_LinkedShaders[sh] = NULL; shProg->_LinkedShaders[sh] = NULL;
} }
} }
@@ -439,7 +438,6 @@ void
_mesa_init_shader_object_functions(struct dd_function_table *driver) _mesa_init_shader_object_functions(struct dd_function_table *driver)
{ {
driver->NewShader = _mesa_new_shader; driver->NewShader = _mesa_new_shader;
driver->DeleteShader = _mesa_delete_shader;
driver->NewShaderProgram = _mesa_new_shader_program; driver->NewShaderProgram = _mesa_new_shader_program;
driver->DeleteShaderProgram = _mesa_delete_shader_program; driver->DeleteShaderProgram = _mesa_delete_shader_program;
driver->LinkShader = _mesa_ir_link_shader; driver->LinkShader = _mesa_ir_link_shader;

View File

@@ -82,6 +82,9 @@ _mesa_init_shader(struct gl_context *ctx, struct gl_shader *shader);
extern struct gl_shader * extern struct gl_shader *
_mesa_new_shader(struct gl_context *ctx, GLuint name, GLenum type); _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 * extern struct gl_shader_program *
_mesa_lookup_shader_program(struct gl_context *ctx, GLuint name); _mesa_lookup_shader_program(struct gl_context *ctx, GLuint name);

View File

@@ -219,7 +219,7 @@ delete_shader_cb(GLuint id, void *data, void *userData)
struct gl_context *ctx = (struct gl_context *) userData; struct gl_context *ctx = (struct gl_context *) userData;
struct gl_shader *sh = (struct gl_shader *) data; struct gl_shader *sh = (struct gl_shader *) data;
if (_mesa_validate_shader_target(ctx, sh->Type)) { if (_mesa_validate_shader_target(ctx, sh->Type)) {
ctx->Driver.DeleteShader(ctx, sh); _mesa_delete_shader(ctx, sh);
} }
else { else {
struct gl_shader_program *shProg = (struct gl_shader_program *) data; struct gl_shader_program *shProg = (struct gl_shader_program *) data;