Fix #37192, Rendered preview causes crash when deleting a material node in shader...
authorLukas Toenne <lukas.toenne@googlemail.com>
Tue, 29 Oct 2013 17:46:01 +0000 (17:46 +0000)
committerLukas Toenne <lukas.toenne@googlemail.com>
Tue, 29 Oct 2013 17:46:01 +0000 (17:46 +0000)
commit8bdbbca4858ab143661f371cc302092759e29408
treee835ed51d977c07464fe0b4a1a9bfcb6dd0efa27
parent8d11abb0ec80a81dbdce1a1a1c163c2e314fb36f
Fix #37192, Rendered preview causes crash when deleting a material node in shader node editor. The 'free' callback for node execution data was accessed from the node->typeinfo, but this pointer can
become invalid because the render database is not immediately freed after the job finishes. To avoid access to dangling node pointers, store the function callback in the exec data itself. The node
pointer must not be accessed in the free function (wasn't used before either), these functions are purely for the execution data.
source/blender/blenkernel/BKE_node.h
source/blender/nodes/intern/node_exec.c
source/blender/nodes/intern/node_exec.h
source/blender/nodes/shader/nodes/node_shader_common.c
source/blender/nodes/texture/nodes/node_texture_common.c