From 1a19cbb166ce66b427a2dd0d0f9e65b1863e35b0 Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Mon, 1 Oct 2012 07:54:37 +0000 Subject: fix for some errors when unlinking. - movieclip unlink didn't clear node ID pointers from the scene (leaving dangling pointers). - mask datablock unlink was clearning references from scene nodes twice. --- source/blender/nodes/intern/node_common.c | 12 ++++++++++++ 1 file changed, 12 insertions(+) (limited to 'source/blender/nodes') diff --git a/source/blender/nodes/intern/node_common.c b/source/blender/nodes/intern/node_common.c index a61cf00d81c..301dea22c17 100644 --- a/source/blender/nodes/intern/node_common.c +++ b/source/blender/nodes/intern/node_common.c @@ -650,3 +650,15 @@ void ntree_update_reroute_nodes(bNodeTree *ntree) if (node->type == NODE_REROUTE && !node->done) node_reroute_inherit_type_recursive(ntree, node); } + +void BKE_node_tree_unlink_id_cb(void *calldata, struct ID *UNUSED(owner_id), struct bNodeTree *ntree) +{ + ID *id = (ID *)calldata; + bNode *node; + + for (node = ntree->nodes.first; node; node = node->next) { + if (node->id == id) { + node->id = NULL; + } + } +} -- cgit v1.2.3