[Bf-blender-cvs] [83b103fd2f7] master: Geometry Nodes: use static instead of dynamic cast

Jacques Lucke noreply at git.blender.org
Thu Dec 29 21:14:00 CET 2022


Commit: 83b103fd2f789f1c52a7e9ab7b19368dd784f1e5
Author: Jacques Lucke
Date:   Thu Dec 29 21:13:52 2022 +0100
Branches: master
https://developer.blender.org/rB83b103fd2f789f1c52a7e9ab7b19368dd784f1e5

Geometry Nodes: use static instead of dynamic cast

In my (fairly extreme) test file this results in a 6% speedup.
The assumption that the dynamic cast would succeed was in place
before already.

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

M	source/blender/nodes/intern/geometry_nodes_lazy_function.cc

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

diff --git a/source/blender/nodes/intern/geometry_nodes_lazy_function.cc b/source/blender/nodes/intern/geometry_nodes_lazy_function.cc
index c18c90fed82..454fe4da23b 100644
--- a/source/blender/nodes/intern/geometry_nodes_lazy_function.cc
+++ b/source/blender/nodes/intern/geometry_nodes_lazy_function.cc
@@ -1324,8 +1324,9 @@ void GeometryNodesLazyFunctionLogger::log_socket_value(
     const GPointer value,
     const fn::lazy_function::Context &context) const
 {
-  GeoNodesLFUserData *user_data = dynamic_cast<GeoNodesLFUserData *>(context.user_data);
-  BLI_assert(user_data != nullptr);
+  /* In this context we expect only a single kind of user data, so use `static_cast`. */
+  GeoNodesLFUserData *user_data = static_cast<GeoNodesLFUserData *>(context.user_data);
+  BLI_assert(dynamic_cast<GeoNodesLFUserData *>(context.user_data) != nullptr);
   if (!user_data->log_socket_values) {
     return;
   }



More information about the Bf-blender-cvs mailing list