[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