[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