diff options
author | Lukas Toenne <lukas.toenne@googlemail.com> | 2011-02-22 10:58:49 +0300 |
---|---|---|
committer | Lukas Toenne <lukas.toenne@googlemail.com> | 2011-02-22 10:58:49 +0300 |
commit | 8b5d019139698383145d8613b457b69e063b3421 (patch) | |
tree | 5c1bb609acf32e2889df91c8ac5b8f14c661917f /source | |
parent | 1e120098fc7e668a28d7eed6a082f5a8b134e39c (diff) |
Fixed missing initialization of node stack entries.
Diffstat (limited to 'source')
-rw-r--r-- | source/blender/blenkernel/intern/node.c | 17 |
1 files changed, 15 insertions, 2 deletions
diff --git a/source/blender/blenkernel/intern/node.c b/source/blender/blenkernel/intern/node.c index 7fd0a2d661a..c614b6910c2 100644 --- a/source/blender/blenkernel/intern/node.c +++ b/source/blender/blenkernel/intern/node.c @@ -2195,18 +2195,24 @@ static void group_tag_used_outputs(bNode *gnode, bNodeStack *stack, bNodeStack * { bNodeTree *ntree= (bNodeTree *)gnode->id; bNode *node; + bNodeSocket *sock; stack+= gnode->stack_index; for(node= ntree->nodes.first; node; node= node->next) { if(node->typeinfo->execfunc) { - bNodeSocket *sock; - for(sock= node->inputs.first; sock; sock= sock->next) { bNodeStack *ns = get_socket_stack(stack, sock, gin); ns->hasoutput= 1; } } + + /* set stack types (for local stack entries) */ + for(sock= node->outputs.first; sock; sock= sock->next) { + bNodeStack *ns = get_socket_stack(stack, sock, NULL); + if (ns) + ns->sockettype = sock->type; + } } } @@ -2313,6 +2319,13 @@ void ntreeBeginExecTree(bNodeTree *ntree) } } + /* set stack types (for local stack entries) */ + for(sock= node->outputs.first; sock; sock= sock->next) { + ns = get_socket_stack(ntree->stack, sock, NULL); + if (ns) + ns->sockettype = sock->type; + } + if(node->type==NODE_GROUP && node->id) { node_get_stack(node, ntree->stack, nsin, NULL, NULL); group_tag_used_outputs(node, ntree->stack, nsin); |