[Bf-blender-cvs] [aaf8c0d9d79] temp-geometry-nodes-evaluator-refactor: cleanup

Jacques Lucke noreply at git.blender.org
Wed Sep 7 13:02:57 CEST 2022


Commit: aaf8c0d9d7931b678ed864c2642bad51c8043dae
Author: Jacques Lucke
Date:   Wed Sep 7 12:14:26 2022 +0200
Branches: temp-geometry-nodes-evaluator-refactor
https://developer.blender.org/rBaaf8c0d9d7931b678ed864c2642bad51c8043dae

cleanup

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

M	source/blender/nodes/NOD_geometry_nodes_log.hh
M	source/blender/nodes/intern/geometry_nodes_log.cc

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

diff --git a/source/blender/nodes/NOD_geometry_nodes_log.hh b/source/blender/nodes/NOD_geometry_nodes_log.hh
index ba9f057967b..a30ab9f4dba 100644
--- a/source/blender/nodes/NOD_geometry_nodes_log.hh
+++ b/source/blender/nodes/NOD_geometry_nodes_log.hh
@@ -169,8 +169,11 @@ class GeoTreeLog {
 
 class GeoModifierLog {
  private:
-  threading::EnumerableThreadSpecific<Map<ContextStackHash, std::unique_ptr<GeoTreeLogger>>>
-      tree_loggers_per_thread_;
+  struct LocalData {
+    Map<ContextStackHash, std::unique_ptr<GeoTreeLogger>> tree_logger_by_context;
+  };
+
+  threading::EnumerableThreadSpecific<LocalData> data_per_thread_;
   Map<ContextStackHash, std::unique_ptr<GeoTreeLog>> tree_logs_;
 
  public:
diff --git a/source/blender/nodes/intern/geometry_nodes_log.cc b/source/blender/nodes/intern/geometry_nodes_log.cc
index b866da6213c..897aa5f87c5 100644
--- a/source/blender/nodes/intern/geometry_nodes_log.cc
+++ b/source/blender/nodes/intern/geometry_nodes_log.cc
@@ -255,8 +255,9 @@ void GeoTreeLog::ensure_viewer_node_logs()
 
 GeoTreeLogger &GeoModifierLog::get_local_tree_logger(const ContextStack &context_stack)
 {
+  LocalData &local_data = data_per_thread_.local();
   Map<ContextStackHash, std::unique_ptr<GeoTreeLogger>> &local_tree_loggers =
-      tree_loggers_per_thread_.local();
+      local_data.tree_logger_by_context;
   std::unique_ptr<GeoTreeLogger> &tree_logger_ptr = local_tree_loggers.lookup_or_add_default(
       context_stack.hash());
   if (tree_logger_ptr) {
@@ -281,9 +282,9 @@ GeoTreeLog &GeoModifierLog::get_tree_log(const ContextStackHash &context_stack_h
 {
   GeoTreeLog &reduced_tree_log = *tree_logs_.lookup_or_add_cb(context_stack_hash, [&]() {
     Vector<GeoTreeLogger *> tree_logs;
-    for (Map<ContextStackHash, std::unique_ptr<GeoTreeLogger>> &log_map :
-         tree_loggers_per_thread_) {
-      std::unique_ptr<GeoTreeLogger> *tree_log = log_map.lookup_ptr(context_stack_hash);
+    for (LocalData &local_data : data_per_thread_) {
+      std::unique_ptr<GeoTreeLogger> *tree_log = local_data.tree_logger_by_context.lookup_ptr(
+          context_stack_hash);
       if (tree_log != nullptr) {
         tree_logs.append(tree_log->get());
       }



More information about the Bf-blender-cvs mailing list