[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [46194] trunk/blender/source/blender: Fix #31236: linking a socket of a different type to an existing node group output

Brecht Van Lommel brechtvanlommel at pandora.be
Wed May 2 17:47:15 CEST 2012


Revision: 46194
          http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=46194
Author:   blendix
Date:     2012-05-02 15:47:15 +0000 (Wed, 02 May 2012)
Log Message:
-----------
Fix #31236: linking a socket of a different type to an existing node group output
would crash, did not convert default value storage correctly.

Modified Paths:
--------------
    trunk/blender/source/blender/editors/space_node/node_edit.c
    trunk/blender/source/blender/nodes/intern/node_common.c

Modified: trunk/blender/source/blender/editors/space_node/node_edit.c
===================================================================
--- trunk/blender/source/blender/editors/space_node/node_edit.c	2012-05-02 14:29:12 UTC (rev 46193)
+++ trunk/blender/source/blender/editors/space_node/node_edit.c	2012-05-02 15:47:15 UTC (rev 46194)
@@ -2412,7 +2412,8 @@
 				/* when linking to group outputs, update the socket type */
 				/* XXX this should all be part of a generic update system */
 				if (!link->tonode) {
-					link->tosock->type = link->fromsock->type;
+					if(link->tosock->type != link->fromsock->type)
+						nodeSocketSetType(link->tosock, link->fromsock->type);
 				}
 			}
 			else if (outside_group_rect(snode) && (link->tonode || link->fromnode)) {

Modified: trunk/blender/source/blender/nodes/intern/node_common.c
===================================================================
--- trunk/blender/source/blender/nodes/intern/node_common.c	2012-05-02 14:29:12 UTC (rev 46193)
+++ trunk/blender/source/blender/nodes/intern/node_common.c	2012-05-02 15:47:15 UTC (rev 46194)
@@ -551,7 +551,8 @@
 		sock->groupsock = gsock;
 		
 		BLI_strncpy(sock->name, gsock->name, sizeof(sock->name));
-		sock->type= gsock->type;
+		if(gsock->type != sock->type)
+			nodeSocketSetType(sock, gsock->type);
 		
 		/* XXX hack: group socket input/output roles are inverted internally,
 		 * need to change the limit value when making actual node sockets from them.




More information about the Bf-blender-cvs mailing list