[Bf-blender-cvs] [0a277f7] master: Fix cycles-xml with OSL support after changes inroduced in 1422f0dd1697d7b671a7b447fd58db7dfe775821

Martijn Berger noreply at git.blender.org
Sat May 7 10:51:08 CEST 2016


Commit: 0a277f7428be13ce892422b8d690931f35e81bd3
Author: Martijn Berger
Date:   Sat May 7 10:50:21 2016 +0200
Branches: master
https://developer.blender.org/rB0a277f7428be13ce892422b8d690931f35e81bd3

Fix cycles-xml with OSL support after changes inroduced in 1422f0dd1697d7b671a7b447fd58db7dfe775821

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

M	intern/cycles/app/cycles_xml.cpp

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

diff --git a/intern/cycles/app/cycles_xml.cpp b/intern/cycles/app/cycles_xml.cpp
index c845f28..262e8c0 100644
--- a/intern/cycles/app/cycles_xml.cpp
+++ b/intern/cycles/app/cycles_xml.cpp
@@ -437,7 +437,7 @@ static void xml_read_shader_graph(const XMLReadState& state, Shader *shader, pug
 			/* Generate inputs/outputs from node sockets
 			 *
 			 * Note: ShaderInput/ShaderOutput store shallow string copies only!
-			 * Socket names must be stored in the extra lists instead. */
+			 * So we register them as ustring to ensure the pointer stays valid. */
 			/* read input values */
 			for(pugi::xml_node param = node.first_child(); param; param = param.next_sibling()) {
 				if(string_iequals(param.name(), "input")) {
@@ -449,8 +449,7 @@ static void xml_read_shader_graph(const XMLReadState& state, Shader *shader, pug
 					if(type == SHADER_SOCKET_UNDEFINED)
 						continue;
 					
-					osl->input_names.push_back(ustring(name));
-					osl->add_input(osl->input_names.back().c_str(), type);
+					osl->add_input(ustring(name).c_str(), type);
 				}
 				else if(string_iequals(param.name(), "output")) {
 					string name;
@@ -461,8 +460,7 @@ static void xml_read_shader_graph(const XMLReadState& state, Shader *shader, pug
 					if(type == SHADER_SOCKET_UNDEFINED)
 						continue;
 					
-					osl->output_names.push_back(ustring(name));
-					osl->add_output(osl->output_names.back().c_str(), type);
+					osl->add_output(ustring(name).c_str(), type);
 				}
 			}




More information about the Bf-blender-cvs mailing list