diff options
Diffstat (limited to 'source/blender/nodes/intern')
-rw-r--r-- | source/blender/nodes/intern/geometry_nodes_lazy_function.cc | 3 | ||||
-rw-r--r-- | source/blender/nodes/intern/geometry_nodes_log.cc | 14 | ||||
-rw-r--r-- | source/blender/nodes/intern/node_geometry_exec.cc | 12 |
3 files changed, 18 insertions, 11 deletions
diff --git a/source/blender/nodes/intern/geometry_nodes_lazy_function.cc b/source/blender/nodes/intern/geometry_nodes_lazy_function.cc index 137057414d4..996cea26718 100644 --- a/source/blender/nodes/intern/geometry_nodes_lazy_function.cc +++ b/source/blender/nodes/intern/geometry_nodes_lazy_function.cc @@ -134,7 +134,8 @@ class LazyFunctionForGeometryNode : public LazyFunction { if (geo_eval_log::GeoModifierLog *modifier_log = user_data->modifier_data->eval_log) { geo_eval_log::GeoTreeLogger &tree_logger = modifier_log->get_local_tree_logger( *user_data->compute_context); - tree_logger.node_execution_times.append({node_.name, start_time, end_time}); + tree_logger.node_execution_times.append( + {tree_logger.allocator->copy_string(node_.name), start_time, end_time}); } } }; diff --git a/source/blender/nodes/intern/geometry_nodes_log.cc b/source/blender/nodes/intern/geometry_nodes_log.cc index 350b199cd60..110573c9119 100644 --- a/source/blender/nodes/intern/geometry_nodes_log.cc +++ b/source/blender/nodes/intern/geometry_nodes_log.cc @@ -148,7 +148,9 @@ void GeoTreeLogger::log_value(const bNode &node, const bNodeSocket &socket, cons auto store_logged_value = [&](destruct_ptr<ValueLog> value_log) { auto &socket_values = socket.in_out == SOCK_IN ? this->input_socket_values : this->output_socket_values; - socket_values.append({node.name, socket.identifier, std::move(value_log)}); + socket_values.append({this->allocator->copy_string(node.name), + this->allocator->copy_string(socket.identifier), + std::move(value_log)}); }; auto log_generic_value = [&](const CPPType &type, const void *value) { @@ -194,7 +196,7 @@ void GeoTreeLogger::log_viewer_node(const bNode &viewer_node, log->geometry = geometry; log->field = field; log->geometry.ensure_owns_direct_data(); - this->viewer_node_logs.append({viewer_node.name, std::move(log)}); + this->viewer_node_logs.append({this->allocator->copy_string(viewer_node.name), std::move(log)}); } void GeoTreeLog::ensure_node_warnings() @@ -315,11 +317,11 @@ void GeoTreeLog::ensure_used_named_attributes() return; } - auto add_attribute = [&](const StringRef node_name, - const StringRef attribute_name, + auto add_attribute = [&](const StringRefNull node_name, + const StringRefNull attribute_name, const NamedAttributeUsage &usage) { - this->nodes.lookup_or_add_as(node_name).used_named_attributes.lookup_or_add_as(attribute_name, - usage) |= usage; + this->nodes.lookup_or_add_default(node_name).used_named_attributes.lookup_or_add( + attribute_name, usage) |= usage; this->used_named_attributes.lookup_or_add_as(attribute_name, usage) |= usage; }; diff --git a/source/blender/nodes/intern/node_geometry_exec.cc b/source/blender/nodes/intern/node_geometry_exec.cc index 1833774fe33..1de92fa8409 100644 --- a/source/blender/nodes/intern/node_geometry_exec.cc +++ b/source/blender/nodes/intern/node_geometry_exec.cc @@ -13,18 +13,22 @@ namespace blender::nodes { -void GeoNodeExecParams::error_message_add(const NodeWarningType type, std::string message) const +void GeoNodeExecParams::error_message_add(const NodeWarningType type, + const StringRef message) const { if (geo_eval_log::GeoTreeLogger *tree_logger = this->get_local_tree_logger()) { - tree_logger->node_warnings.append({node_.name, {type, std::move(message)}}); + tree_logger->node_warnings.append({tree_logger->allocator->copy_string(node_.name), + {type, tree_logger->allocator->copy_string(message)}}); } } -void GeoNodeExecParams::used_named_attribute(std::string attribute_name, +void GeoNodeExecParams::used_named_attribute(const StringRef attribute_name, const NamedAttributeUsage usage) { if (geo_eval_log::GeoTreeLogger *tree_logger = this->get_local_tree_logger()) { - tree_logger->used_named_attributes.append({node_.name, std::move(attribute_name), usage}); + tree_logger->used_named_attributes.append({tree_logger->allocator->copy_string(node_.name), + tree_logger->allocator->copy_string(attribute_name), + usage}); } } |