Fix T48829: Memory leak on Blender Exit

It was possible to have missing outlink but GPUNodes in material.
This commit is contained in:
Sergey Sharybin 2016-07-27 10:59:09 +02:00
parent 3d8c2e25a3
commit 5f95ffe350
3 changed files with 10 additions and 0 deletions

@ -1732,3 +1732,9 @@ void GPU_pass_free(GPUPass *pass)
MEM_freeN(pass->vertexcode);
MEM_freeN(pass);
}
void GPU_pass_free_nodes(ListBase *nodes)
{
gpu_nodes_free(nodes);
}

@ -183,6 +183,7 @@ void GPU_pass_update_uniforms(GPUPass *pass);
void GPU_pass_unbind(GPUPass *pass);
void GPU_pass_free(GPUPass *pass);
void GPU_pass_free_nodes(ListBase *nodes);
void gpu_codegen_init(void);
void gpu_codegen_exit(void);

@ -270,6 +270,9 @@ static int GPU_material_construct_end(GPUMaterial *material, const char *passnam
material->partangvel = GPU_shader_get_uniform(shader, GPU_builtin_name(GPU_PARTICLE_ANG_VELOCITY));
return 1;
}
else {
GPU_pass_free_nodes(&material->nodes);
}
return 0;
}