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,

_______________________________________________
Bf-blender-cvs mailing list
[email protected]
https://lists.blender.org/mailman/listinfo/bf-blender-cvs

Reply via email to