[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