[Bf-blender-cvs] [6afafc46f63] master: Fix: Spreadsheet selection filter crash on non-mesh components

Hans Goudey noreply at git.blender.org
Mon Jun 21 00:39:26 CEST 2021


Commit: 6afafc46f639c49a0d12a22c3ce298c6b6396ec9
Author: Hans Goudey
Date:   Sun Jun 20 17:39:18 2021 -0500
Branches: master
https://developer.blender.org/rB6afafc46f639c49a0d12a22c3ce298c6b6396ec9

Fix: Spreadsheet selection filter crash on non-mesh components

The spreadsheet filter tried to apply the mesh selection filter on non-
mesh geometry components. Add a check for the component type,
and also refactor the function to be more easily readable.

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

M	source/blender/editors/space_spreadsheet/spreadsheet_data_source_geometry.cc

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

diff --git a/source/blender/editors/space_spreadsheet/spreadsheet_data_source_geometry.cc b/source/blender/editors/space_spreadsheet/spreadsheet_data_source_geometry.cc
index 77248254d7b..0c76c8b7a15 100644
--- a/source/blender/editors/space_spreadsheet/spreadsheet_data_source_geometry.cc
+++ b/source/blender/editors/space_spreadsheet/spreadsheet_data_source_geometry.cc
@@ -226,15 +226,23 @@ static void get_selected_indices_on_domain(const Mesh &mesh,
   }
 }
 
+/**
+ * Only data sets corresponding to mesh objects in edit mode currently support selection filtering.
+ */
 bool GeometryDataSource::has_selection_filter() const
 {
   Object *object_orig = DEG_get_original_object(object_eval_);
-  if (object_orig->type == OB_MESH) {
-    if (object_orig->mode == OB_MODE_EDIT) {
-      return true;
-    }
+  if (object_orig->type != OB_MESH) {
+    return false;
   }
-  return false;
+  if (object_orig->mode != OB_MODE_EDIT) {
+    return false;
+  }
+  if (component_->type() != GEO_COMPONENT_TYPE_MESH) {
+    return false;
+  }
+
+  return true;
 }
 
 void GeometryDataSource::apply_selection_filter(MutableSpan<bool> rows_included) const



More information about the Bf-blender-cvs mailing list