diff options
author | Ton Roosendaal <ton@blender.org> | 2011-01-08 22:12:42 +0300 |
---|---|---|
committer | Ton Roosendaal <ton@blender.org> | 2011-01-08 22:12:42 +0300 |
commit | 17e733a4fc2a8cd6958ecc5cf2bdae0ec2da2de5 (patch) | |
tree | 2d9ddb32fd215d05b13a40d0d91964588571b146 /source/blender/editors/space_node | |
parent | 16e7a2618524a375541ddddc951cedc0a346179c (diff) |
Bugfix #25525
Duplicating viewer node crashed in cases; bad ID was given to a function.
Fix provided by Alexander Kuznetsov. Thanks!
Diffstat (limited to 'source/blender/editors/space_node')
-rw-r--r-- | source/blender/editors/space_node/node_edit.c | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/source/blender/editors/space_node/node_edit.c b/source/blender/editors/space_node/node_edit.c index 6a6c7c6eead..dc2396f0d15 100644 --- a/source/blender/editors/space_node/node_edit.c +++ b/source/blender/editors/space_node/node_edit.c @@ -330,6 +330,7 @@ void ED_node_texture_default(Tex *tx) ntreeSolveOrder(tx->nodetree); /* needed for pointers */ } +/* id is supposed to contain a node tree */ void node_tree_from_ID(ID *id, bNodeTree **ntree, bNodeTree **edittree, int *treetype) { bNode *node= NULL; @@ -347,6 +348,10 @@ void node_tree_from_ID(ID *id, bNodeTree **ntree, bNodeTree **edittree, int *tre *ntree= ((Tex*)id)->nodetree; if(treetype) *treetype= NTREE_TEXTURE; } + else { + if(treetype) *treetype= 0; + return; + } /* find editable group */ if(edittree) { @@ -1521,7 +1526,7 @@ static int node_duplicate_exec(bContext *C, wmOperator *UNUSED(op)) for(node= snode->edittree->nodes.first; node; node= node->next) if(node->flag & SELECT) if(node->id) - ED_node_changed_update(node->id, node); + ED_node_changed_update(snode->id, node); ntreeSolveOrder(snode->edittree); node_tree_verify_groups(snode->nodetree); |