[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [41845] trunk/blender/source/blender/ editors/space_node/node_templates.c: Fix #29238: crash with node dependency loop.

Brecht Van Lommel brechtvanlommel at pandora.be
Mon Nov 14 21:26:23 CET 2011


Revision: 41845
          http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=41845
Author:   blendix
Date:     2011-11-14 20:26:23 +0000 (Mon, 14 Nov 2011)
Log Message:
-----------
Fix #29238: crash with node dependency loop.

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	2011-11-14 19:45:21 UTC (rev 41844)
+++ trunk/blender/source/blender/editors/space_node/node_templates.c	2011-11-14 20:26:23 UTC (rev 41845)
@@ -552,6 +552,7 @@
 	bNode *lnode;
 	char label[UI_MAX_NAME_STR];
 	int indent = (depth > 1)? 2*(depth - 1): 0;
+	int dependency_loop;
 
 	if(input->flag & SOCK_UNAVAIL)
 		return;
@@ -560,6 +561,10 @@
 	node->flag |= NODE_TEST;
 	lnode = (input->link)? input->link->fromnode: NULL;
 
+	dependency_loop = (lnode && (lnode->flag & NODE_TEST));
+	if(dependency_loop)
+		lnode = NULL;
+
 	/* socket RNA pointer */
 	RNA_pointer_create(&ntree->id, &RNA_NodeSocket, input, &inputptr);
 
@@ -593,7 +598,11 @@
 	bt= block->buttons.last;
 	bt->flag= UI_TEXT_LEFT;
 
-	if(lnode) {
+	if(dependency_loop) {
+		row = uiLayoutRow(split, 0);
+		uiItemL(row, "Dependency Loop", ICON_ERROR);
+	}
+	else if(lnode) {
 		/* input linked to a node */
 		uiTemplateNodeLink(split, ntree, node, input);
 




More information about the Bf-blender-cvs mailing list