[Bf-blender-cvs] [8796a99] object_nodes: Fix for missing stack indices in expression blocks.

Lukas Tönne noreply at git.blender.org
Tue Jan 12 12:38:23 CET 2016


Commit: 8796a997d66cb4faf67f807b87d79368a5794ff6
Author: Lukas Tönne
Date:   Thu Jan 7 10:41:35 2016 +0100
Branches: object_nodes
https://developer.blender.org/rB8796a997d66cb4faf67f807b87d79368a5794ff6

Fix for missing stack indices in expression blocks.

When creating an expression block, the parent block stack indices must
initialize the local index map, so that external variables can be accessed.

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

M	source/blender/blenvm/compile/bvm_codegen.cc

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

diff --git a/source/blender/blenvm/compile/bvm_codegen.cc b/source/blender/blenvm/compile/bvm_codegen.cc
index ff76230..7064687 100644
--- a/source/blender/blenvm/compile/bvm_codegen.cc
+++ b/source/blender/blenvm/compile/bvm_codegen.cc
@@ -87,7 +87,8 @@ void Compiler::resolve_basic_block_symbols(const NodeGraph &graph, Compiler::Bas
 		const NodeInstance &node = **it;
 		
 		/* local arguments for expression inputs */
-		OutputIndexMap local_input_index;
+		OutputIndexMap local_output_index;
+		local_output_index.insert(block.output_index.begin(), block.output_index.end());
 		
 		/* initialize output data stack entries */
 		for (int i = 0; i < node.num_outputs(); ++i) {
@@ -107,7 +108,7 @@ void Compiler::resolve_basic_block_symbols(const NodeGraph &graph, Compiler::Bas
 				
 				assert(graph_input);
 				if (graph_input->key.node) {
-					local_input_index[graph_input->key] = stack_index;
+					local_output_index[graph_input->key] = stack_index;
 				}
 			}
 		}
@@ -125,7 +126,7 @@ void Compiler::resolve_basic_block_symbols(const NodeGraph &graph, Compiler::Bas
 				BasicBlock &expr_block = expression_map.at(key);
 				
 				/* initialize local arguments */
-				expr_block.output_index.insert(local_input_index.begin(), local_input_index.end());
+				expr_block.output_index.insert(local_output_index.begin(), local_output_index.end());
 				
 				resolve_basic_block_symbols(graph, expr_block);




More information about the Bf-blender-cvs mailing list