diff options
Diffstat (limited to 'source/blender/blenkernel/intern/node.c')
-rw-r--r-- | source/blender/blenkernel/intern/node.c | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/source/blender/blenkernel/intern/node.c b/source/blender/blenkernel/intern/node.c index 86fe47268d6..3dbaab008f8 100644 --- a/source/blender/blenkernel/intern/node.c +++ b/source/blender/blenkernel/intern/node.c @@ -991,6 +991,12 @@ void nodeFreeNode(bNodeTree *ntree, bNode *node) if (treetype->free_node_cache) treetype->free_node_cache(ntree, node); + + /* texture node has bad habit of keeping exec data around */ + if (ntree->type == NTREE_TEXTURE && ntree->execdata) { + ntreeTexEndExecTree(ntree->execdata, 1); + ntree->execdata = NULL; + } } /* since it is called while free database, node->id is undefined */ @@ -1040,6 +1046,7 @@ void ntreeFreeTree_ex(bNodeTree *ntree, const short do_id_user) break; case NTREE_TEXTURE: ntreeTexEndExecTree(ntree->execdata, 1); + ntree->execdata = NULL; break; } } |