[Bf-blender-cvs] [f48b9823a4f] functions: deduplicate code to setup tuples

Jacques Lucke noreply at git.blender.org
Sun Apr 28 18:57:46 CEST 2019


Commit: f48b9823a4f67660a785025540b8e19343f89d02
Author: Jacques Lucke
Date:   Sun Apr 28 18:45:09 2019 +0200
Branches: functions
https://developer.blender.org/rBf48b9823a4f67660a785025540b8e19343f89d02

deduplicate code to setup tuples

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

M	source/blender/functions/backends/tuple_call/fgraph_tuple_call.cpp

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

diff --git a/source/blender/functions/backends/tuple_call/fgraph_tuple_call.cpp b/source/blender/functions/backends/tuple_call/fgraph_tuple_call.cpp
index 982135a39ae..1830514ba22 100644
--- a/source/blender/functions/backends/tuple_call/fgraph_tuple_call.cpp
+++ b/source/blender/functions/backends/tuple_call/fgraph_tuple_call.cpp
@@ -242,6 +242,18 @@ class ExecuteFGraph : public TupleCallBody {
     }
   };
 
+#define SETUP_SUB_TUPLES(node_id, body, body_in, body_out) \
+  Tuple body_in(body->meta_in(), \
+                storage.node_input_values_ptr(node_id), \
+                storage.node_input_inits_ptr(node_id), \
+                true, \
+                false); \
+  Tuple body_out(body->meta_out(), \
+                 storage.node_output_values_ptr(node_id), \
+                 storage.node_output_inits_ptr(node_id), \
+                 true, \
+                 false);
+
   void evaluate_graph_to_compute_outputs(SocketValueStorage &storage,
                                          Tuple &fn_out,
                                          ExecutionContext &ctx) const
@@ -281,17 +293,6 @@ class ExecuteFGraph : public TupleCallBody {
           if (m_node_info[node_id].is_lazy) {
             LazyInTupleCallBody *body = (LazyInTupleCallBody *)m_node_info[node_id].body;
 
-            Tuple body_in(body->meta_in(),
-                          storage.node_input_values_ptr(node_id),
-                          storage.node_input_inits_ptr(node_id),
-                          true,
-                          false);
-            Tuple body_out(body->meta_out(),
-                           storage.node_output_values_ptr(node_id),
-                           storage.node_output_inits_ptr(node_id),
-                           true,
-                           false);
-
             if (lazy_states.empty() || lazy_states.peek().node_id != node_id) {
 
               bool required_inputs_computed = true;
@@ -309,6 +310,8 @@ class ExecuteFGraph : public TupleCallBody {
                 LazyState state(user_data);
                 state.start_next_entry();
 
+                SETUP_SUB_TUPLES(node_id, body, body_in, body_out);
+
                 SourceInfoStackFrame frame(m_graph->source_info_of_node(node_id));
                 ctx.stack().push(&frame);
                 body->call(body_in, body_out, ctx, state);
@@ -333,6 +336,8 @@ class ExecuteFGraph : public TupleCallBody {
               LazyState &state = lazy_states.peek().state;
               state.start_next_entry();
 
+              SETUP_SUB_TUPLES(node_id, body, body_in, body_out);
+
               SourceInfoStackFrame frame(m_graph->source_info_of_node(node_id));
               ctx.stack().push(&frame);
               body->call(body_in, body_out, ctx, state);
@@ -370,16 +375,7 @@ class ExecuteFGraph : public TupleCallBody {
               TupleCallBody *body = (TupleCallBody *)m_node_info[node_id].body;
               BLI_assert(body);
 
-              Tuple body_in(body->meta_in(),
-                            storage.node_input_values_ptr(node_id),
-                            storage.node_input_inits_ptr(node_id),
-                            true,
-                            true);
-              Tuple body_out(body->meta_out(),
-                             storage.node_output_values_ptr(node_id),
-                             storage.node_output_inits_ptr(node_id),
-                             true,
-                             false);
+              SETUP_SUB_TUPLES(node_id, body, body_in, body_out);
 
               SourceInfo *source_info = m_graph->source_info_of_node(node_id);
               body->call__setup_stack(body_in, body_out, ctx, source_info);



More information about the Bf-blender-cvs mailing list