Commit: 2ab72f6db8319b564dc6e3e6c0a6c26d253fda30
Author: Hans Goudey
Date:   Thu Jan 19 15:49:49 2023 -0600
Branches: master
https://developer.blender.org/rB2ab72f6db8319b564dc6e3e6c0a6c26d253fda30

Fix T103964: Assert on mouse hover of empty node editor

The reverse iteration added in e091291b5b5f525cd8d3 didn't handle
the case where there are no nodes properly. Thanks to Iliya Katueshenock
for investigating this.

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

M       source/blender/editors/space_node/node_draw.cc
M       source/blender/editors/space_node/node_edit.cc

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

diff --git a/source/blender/editors/space_node/node_draw.cc 
b/source/blender/editors/space_node/node_draw.cc
index d3b34c408cf..bc4b6d416c1 100644
--- a/source/blender/editors/space_node/node_draw.cc
+++ b/source/blender/editors/space_node/node_draw.cc
@@ -2621,8 +2621,10 @@ int node_get_resize_cursor(NodeResizeDirection 
directions)
 
 static const bNode *find_node_under_cursor(SpaceNode &snode, const float2 
&cursor)
 {
-  /* Check nodes front to back. */
   const Span<bNode *> nodes = snode.edittree->all_nodes();
+  if (nodes.is_empty()) {
+    return nullptr;
+  }
   for (int i = nodes.index_range().last(); i >= 0; i--) {
     if (BLI_rctf_isect_pt(&nodes[i]->runtime->totr, cursor[0], cursor[1])) {
       return nodes[i];
diff --git a/source/blender/editors/space_node/node_edit.cc 
b/source/blender/editors/space_node/node_edit.cc
index d93b93d8f8c..fc039746639 100644
--- a/source/blender/editors/space_node/node_edit.cc
+++ b/source/blender/editors/space_node/node_edit.cc
@@ -1135,8 +1135,11 @@ bNodeSocket *node_find_indicated_socket(SpaceNode &snode,
     /* Sockets haven't been drawn yet, e.g. when the file is currently 
opening. */
     return nullptr;
   }
-
   const Span<bNode *> nodes = snode.edittree->all_nodes();
+  if (nodes.is_empty()) {
+    return nullptr;
+  }
+
   for (int i = nodes.index_range().last(); i >= 0; i--) {
     bNode &node = *nodes[i];

_______________________________________________
Bf-blender-cvs mailing list
Bf-blender-cvs@blender.org
List details, subscription details or unsubscribe:
https://lists.blender.org/mailman/listinfo/bf-blender-cvs

Reply via email to