[Bf-blender-cvs] [de23a2c35b9] functions: remove lazy init usage
Jacques Lucke
noreply at git.blender.org
Thu Feb 13 18:59:12 CET 2020
Commit: de23a2c35b9bda724567e1c63768aabf97b83bf3
Author: Jacques Lucke
Date: Thu Feb 13 18:39:38 2020 +0100
Branches: functions
https://developer.blender.org/rBde23a2c35b9bda724567e1c63768aabf97b83bf3
remove lazy init usage
===================================================================
M source/blender/simulations/bparticles/node_frontend.cpp
===================================================================
diff --git a/source/blender/simulations/bparticles/node_frontend.cpp b/source/blender/simulations/bparticles/node_frontend.cpp
index 8e5ddc553fb..beb3742227e 100644
--- a/source/blender/simulations/bparticles/node_frontend.cpp
+++ b/source/blender/simulations/bparticles/node_frontend.cpp
@@ -57,7 +57,7 @@ class InfluencesCollector;
class FSocketActionBuilder;
using ActionParserCallback = std::function<void(FSocketActionBuilder &builder)>;
-StringMap<ActionParserCallback> &get_action_parsers();
+extern StringMap<ActionParserCallback, BLI::RawAllocator> action_parsers_map;
class InfluencesCollector {
public:
@@ -507,8 +507,7 @@ ParticleAction *FunctionTreeData::build_action(InfluencesCollector &collector,
return nullptr;
}
- StringMap<ActionParserCallback> &parsers = get_action_parsers();
- ActionParserCallback *parser = parsers.lookup_ptr(execute_socket.node().idname());
+ ActionParserCallback *parser = action_parsers_map.lookup_ptr(execute_socket.node().idname());
if (parser == nullptr) {
std::cout << "Expected to find parser for: " << execute_socket.node().idname() << "\n";
return nullptr;
@@ -608,16 +607,6 @@ static void ACTION_multi_execute(FSocketActionBuilder &builder)
builder.set(action);
}
-BLI_LAZY_INIT(StringMap<ActionParserCallback>, get_action_parsers)
-{
- StringMap<ActionParserCallback> map;
- map.add_new("fn_SpawnParticlesNode", ACTION_spawn);
- map.add_new("fn_ParticleConditionNode", ACTION_condition);
- map.add_new("fn_SetParticleAttributeNode", ACTION_set_attribute);
- map.add_new("fn_MultiExecuteNode", ACTION_multi_execute);
- return map;
-}
-
class FNodeInfluencesBuilder {
private:
InfluencesCollector &m_influences_collector;
@@ -1061,8 +1050,20 @@ static StringMap<ParseNodeCallback, BLI::RawAllocator> create_node_parsers_map()
return map;
}
+static StringMap<ActionParserCallback, BLI::RawAllocator> create_action_parsers_map()
+{
+ StringMap<ActionParserCallback, BLI::RawAllocator> map;
+ map.add_new("fn_SpawnParticlesNode", ACTION_spawn);
+ map.add_new("fn_ParticleConditionNode", ACTION_condition);
+ map.add_new("fn_SetParticleAttributeNode", ACTION_set_attribute);
+ map.add_new("fn_MultiExecuteNode", ACTION_multi_execute);
+ return map;
+}
+
static StringMap<ParseNodeCallback, BLI::RawAllocator> node_parsers_map =
create_node_parsers_map();
+StringMap<ActionParserCallback, BLI::RawAllocator> action_parsers_map =
+ create_action_parsers_map();
static void collect_influences(FunctionTreeData &function_tree_data,
WorldTransition &world_transition,
More information about the Bf-blender-cvs
mailing list