[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