diff options
author | Campbell Barton <ideasman42@gmail.com> | 2012-10-01 11:54:37 +0400 |
---|---|---|
committer | Campbell Barton <ideasman42@gmail.com> | 2012-10-01 11:54:37 +0400 |
commit | 1a19cbb166ce66b427a2dd0d0f9e65b1863e35b0 (patch) | |
tree | ec30f45228f4a89f307ea60fccd0eb35a1b6fd3b /source/blender/nodes | |
parent | 323ad98496cc4b5b95be69d1a81c2bb07ff5bf56 (diff) |
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.
Diffstat (limited to 'source/blender/nodes')
-rw-r--r-- | source/blender/nodes/intern/node_common.c | 12 |
1 files changed, 12 insertions, 0 deletions
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; + } + } +} |