Partial fix for #30606. In node tree updates also update the sock->link pointers when only the NTREE_UPDATE_NODES flag is set, this happens when duplicating a node, which can lead to wrong pointers on the duplicated but unlinked node.

This commit is contained in:
Lukas Toenne 2012-03-20 16:59:00 +00:00
parent 5ae9ad9113
commit 8486a2187f

@ -1543,13 +1543,13 @@ void ntreeUpdateTree(bNodeTree *ntree)
bNodeTreeType *ntreetype= ntreeGetType(ntree->type);
bNode *node;
/* set the bNodeSocket->link pointers */
if (ntree->update & NTREE_UPDATE_LINKS)
if (ntree->update & (NTREE_UPDATE_LINKS|NTREE_UPDATE_NODES)) {
/* set the bNodeSocket->link pointers */
ntree_update_link_pointers(ntree);
/* update the node level from link dependencies */
if (ntree->update & (NTREE_UPDATE_LINKS|NTREE_UPDATE_NODES))
/* update the node level from link dependencies */
ntree_update_node_level(ntree);
}
/* update individual nodes */
for (node=ntree->nodes.first; node; node=node->next) {