[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