[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [45426] trunk/blender/source/blender/ makesrna/intern/rna_nodetree.c: Fix #30804: nodetree.links.new() incorrectly disconnected or allowed to connect

Brecht Van Lommel brechtvanlommel at pandora.be
Thu Apr 5 16:17:43 CEST 2012


Revision: 45426
          http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=45426
Author:   blendix
Date:     2012-04-05 14:17:42 +0000 (Thu, 05 Apr 2012)
Log Message:
-----------
Fix #30804: nodetree.links.new() incorrectly disconnected or allowed to connect
multiple links to a socket when the arguments were passed in order:
(input socket, output socket) instead of (output socket, input socket)

Modified Paths:
--------------
    trunk/blender/source/blender/makesrna/intern/rna_nodetree.c

Modified: trunk/blender/source/blender/makesrna/intern/rna_nodetree.c
===================================================================
--- trunk/blender/source/blender/makesrna/intern/rna_nodetree.c	2012-04-05 13:01:41 UTC (rev 45425)
+++ trunk/blender/source/blender/makesrna/intern/rna_nodetree.c	2012-04-05 14:17:42 UTC (rev 45426)
@@ -685,14 +685,14 @@
 	WM_main_add_notifier(NC_NODE|NA_EDITED, ntree);
 }
 
-static bNodeLink *rna_NodeTree_link_new(bNodeTree *ntree, ReportList *reports, bNodeSocket *in, bNodeSocket *out)
+static bNodeLink *rna_NodeTree_link_new(bNodeTree *ntree, ReportList *reports, bNodeSocket *fromsock, bNodeSocket *tosock)
 {
 	bNodeLink *ret;
 	bNode *fromnode = NULL, *tonode = NULL;
 	int from_in_out, to_in_out;
 
-	nodeFindNode(ntree, in, &fromnode, NULL, &from_in_out);
-	nodeFindNode(ntree, out, &tonode, NULL, &to_in_out);
+	nodeFindNode(ntree, fromsock, &fromnode, NULL, &from_in_out);
+	nodeFindNode(ntree, tosock, &tonode, NULL, &to_in_out);
 	
 	if (&from_in_out == &to_in_out) {
 		BKE_reportf(reports, RPT_ERROR, "Same input/output direction of sockets");
@@ -700,9 +700,12 @@
 	}
 
 	/* unlink node input socket */
-	nodeRemSocketLinks(ntree, out);
+	if (to_in_out == SOCK_IN)
+		nodeRemSocketLinks(ntree, tosock);
+	else
+		nodeRemSocketLinks(ntree, fromsock);
 
-	ret = nodeAddLink(ntree, fromnode, in, tonode, out);
+	ret = nodeAddLink(ntree, fromnode, fromsock, tonode, tosock);
 	
 	if (ret) {
 		nodeUpdate(ntree, tonode);
@@ -711,6 +714,7 @@
 
 		WM_main_add_notifier(NC_NODE|NA_EDITED, ntree);
 	}
+
 	return ret;
 }
 




More information about the Bf-blender-cvs mailing list