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;
 }
 

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

Reply via email to