mesa: fix InfoLog memleak, misc sync with master
This commit is contained in:
@@ -126,10 +126,17 @@ _mesa_free_shader_program_data(GLcontext *ctx,
|
||||
for (i = 0; i < shProg->NumShaders; i++) {
|
||||
_mesa_reference_shader(ctx, &shProg->Shaders[i], NULL);
|
||||
}
|
||||
shProg->NumShaders = 0;
|
||||
|
||||
if (shProg->Shaders) {
|
||||
_mesa_free(shProg->Shaders);
|
||||
shProg->Shaders = NULL;
|
||||
}
|
||||
|
||||
if (shProg->InfoLog) {
|
||||
_mesa_free(shProg->InfoLog);
|
||||
shProg->InfoLog = NULL;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -140,10 +147,7 @@ void
|
||||
_mesa_free_shader_program(GLcontext *ctx, struct gl_shader_program *shProg)
|
||||
{
|
||||
_mesa_free_shader_program_data(ctx, shProg);
|
||||
if (shProg->Shaders) {
|
||||
_mesa_free(shProg->Shaders);
|
||||
shProg->Shaders = NULL;
|
||||
}
|
||||
|
||||
_mesa_free(shProg);
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user