[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [56140] trunk/blender/source/blender/ editors/space_node/node_templates.c: A few fixes for recent own commit r56133.

Lukas Toenne lukas.toenne at googlemail.com
Thu Apr 18 15:16:38 CEST 2013


Revision: 56140
          http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=56140
Author:   lukastoenne
Date:     2013-04-18 13:16:38 +0000 (Thu, 18 Apr 2013)
Log Message:
-----------
A few fixes for recent own commit r56133.

* Index was assigned after increment, leading to NULL pointer access later on when looking up socket from list
* Copying default_value requires a valid NULL pointer for clean check
* Was using default_values as parameters instead of sockets, void pointers just passed through without warning ...

Revision Links:
--------------
    http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=56133

Modified Paths:
--------------
    trunk/blender/source/blender/editors/space_node/node_templates.c

Modified: trunk/blender/source/blender/editors/space_node/node_templates.c
===================================================================
--- trunk/blender/source/blender/editors/space_node/node_templates.c	2013-04-18 12:43:30 UTC (rev 56139)
+++ trunk/blender/source/blender/editors/space_node/node_templates.c	2013-04-18 13:16:38 UTC (rev 56140)
@@ -246,9 +246,11 @@
 						nodeRemLink(ntree, link);
 					}
 
-					if (sock_from->default_value)
+					if (sock_from->default_value) {
 						MEM_freeN(sock_from->default_value);
-					node_socket_copy_default_value(sock_from->default_value, sock_prev->default_value);
+						sock_from->default_value = NULL;
+					}
+					node_socket_copy_default_value(sock_from, sock_prev);
 				}
 			}
 		}
@@ -313,8 +315,8 @@
 				ListBase *lb = (in_out == SOCK_IN ? &ngroup->inputs : &ngroup->outputs);
 				bNodeSocket *stemp;
 				int index;
-				for (stemp = lb->first, index = 0; stemp; stemp = stemp->next, ++index) {
-					NodeLinkItem *item = &items[i++];
+				for (stemp = lb->first, index = 0; stemp; stemp = stemp->next, ++index, ++i) {
+					NodeLinkItem *item = &items[i];
 					
 					item->socket_index = index;
 					/* note: int stemp->type is not fully reliable, not used for node group
@@ -340,8 +342,8 @@
 			items = MEM_callocN(sizeof(NodeLinkItem) * totitems, "ui node link items");
 			
 			i = 0;
-			for (stemp = socket_templates; stemp && stemp->type != -1; ++stemp) {
-				NodeLinkItem *item = &items[i++];
+			for (stemp = socket_templates; stemp && stemp->type != -1; ++stemp, ++i) {
+				NodeLinkItem *item = &items[i];
 				
 				item->socket_index = i;
 				item->socket_type = stemp->type;




More information about the Bf-blender-cvs mailing list