[Bf-blender-cvs] [ca01fe5] master: Fix T48662: Blender crash using node groups connected with displacement output in some situations
Sergey Sharybin
noreply at git.blender.org
Fri Jun 17 12:14:37 CEST 2016
Commit: ca01fe58e1476cd1c56f5585c057539149f0060e
Author: Sergey Sharybin
Date: Fri Jun 17 12:14:36 2016 +0200
Branches: master
https://developer.blender.org/rBca01fe58e1476cd1c56f5585c057539149f0060e
Fix T48662: Blender crash using node groups connected with displacement output in some situations
===================================================================
M source/blender/nodes/shader/node_shader_tree.c
===================================================================
diff --git a/source/blender/nodes/shader/node_shader_tree.c b/source/blender/nodes/shader/node_shader_tree.c
index afccef4..b22f5b6 100644
--- a/source/blender/nodes/shader/node_shader_tree.c
+++ b/source/blender/nodes/shader/node_shader_tree.c
@@ -57,6 +57,8 @@
#include "RE_shader_ext.h"
+#include "NOD_common.h"
+
#include "node_common.h"
#include "node_exec.h"
#include "node_util.h"
@@ -323,6 +325,9 @@ static void ntree_shader_link_builtin_group_normal(
"NodeSocketVector",
"Normal");
/* Need to update tree so all node instances nodes gets proper sockets. */
+ bNode *group_input_node = ntreeFindType(group_ntree, NODE_GROUP_INPUT);
+ node_group_verify(ntree, group_node, &group_ntree->id);
+ node_group_input_verify(group_ntree, group_input_node, &group_ntree->id);
ntreeUpdateTree(G.main, group_ntree);
/* Assumes sockets are always added at the end. */
bNodeSocket *group_node_normal_socket = (bNodeSocket*)group_node->inputs.last;
@@ -346,7 +351,6 @@ static void ntree_shader_link_builtin_group_normal(
/* This code is similar to ntree_shader_relink_displacement() */
bNode *group_displacement_node = group_displacement_link->fromnode;
bNodeSocket *group_displacement_socket = group_displacement_link->fromsock;
- nodeRemLink(group_ntree, group_displacement_link);
/* Create and link bump node.
* Can't re-use bump node from parent tree because it'll cause cycle.
*/
@@ -371,7 +375,6 @@ static void ntree_shader_link_builtin_group_normal(
nodeAddLink(ntree,
node_from, socket_from,
group_node, group_node_normal_socket);
- bNode *group_input_node = ntreeFindType(group_ntree, NODE_GROUP_INPUT);
BLI_assert(group_input_node != NULL);
bNodeSocket *group_input_node_normal_socket =
nodeFindSocket(group_input_node,
More information about the Bf-blender-cvs
mailing list