[Bf-blender-cvs] [8d0b104] master: Fix T44064: Reroute two-node loop crash

Sergey Sharybin noreply at git.blender.org
Wed Mar 25 09:48:23 CET 2015


Commit: 8d0b104f4357f5914f3e28d735ebffa1526a598e
Author: Sergey Sharybin
Date:   Wed Mar 25 13:46:59 2015 +0500
Branches: master
https://developer.blender.org/rB8d0b104f4357f5914f3e28d735ebffa1526a598e

Fix T44064: Reroute two-node loop crash

Issue was caused by cycles in shader graph confusing it's
simplification stage. Now we're ignoring links which are
marked as invalid from blender side so we don't run into
such cycles and keep graph code simple.

===================================================================

M	intern/cycles/blender/blender_shader.cpp

===================================================================

diff --git a/intern/cycles/blender/blender_shader.cpp b/intern/cycles/blender/blender_shader.cpp
index baf79a7..5628d96 100644
--- a/intern/cycles/blender/blender_shader.cpp
+++ b/intern/cycles/blender/blender_shader.cpp
@@ -951,6 +951,10 @@ static void add_nodes(Scene *scene, BL::BlendData b_data, BL::Scene b_scene, Sha
 	BL::NodeTree::links_iterator b_link;
 
 	for(b_ntree.links.begin(b_link); b_link != b_ntree.links.end(); ++b_link) {
+		/* Ignore invalid links to avoid unwanted cycles created in graph. */
+		if(!b_link->is_valid()) {
+			continue;
+		}
 		/* get blender link data */
 		BL::NodeSocket b_from_sock = b_link->from_socket();
 		BL::NodeSocket b_to_sock = b_link->to_socket();




More information about the Bf-blender-cvs mailing list