diff options
-rw-r--r-- | source/blender/blenkernel/intern/layer.c | 3 | ||||
-rw-r--r-- | source/blender/editors/object/object_edit.c | 12 |
2 files changed, 10 insertions, 5 deletions
diff --git a/source/blender/blenkernel/intern/layer.c b/source/blender/blenkernel/intern/layer.c index dd8a22e10da..1d47fb002e6 100644 --- a/source/blender/blenkernel/intern/layer.c +++ b/source/blender/blenkernel/intern/layer.c @@ -1710,6 +1710,9 @@ void BKE_view_layer_bases_in_mode_iterator_begin(BLI_Iterator *iter, void *data_ struct ObjectsInModeIteratorData *data = data_in; Base *base = data->base_active; + /* In this case the result will always be empty, the caller must check for no mode. */ + BLI_assert(data->object_mode != 0); + /* when there are no objects */ if (base == NULL) { iter->valid = false; diff --git a/source/blender/editors/object/object_edit.c b/source/blender/editors/object/object_edit.c index 7e0df736228..6dcb7e2a1b0 100644 --- a/source/blender/editors/object/object_edit.c +++ b/source/blender/editors/object/object_edit.c @@ -194,11 +194,13 @@ Object **ED_object_array_in_mode_or_selected(bContext *C, /* When in a mode that supports multiple active objects, use "objects in mode" * instead of the object's selection. */ if ((ob_active != NULL) && (ob_active->mode & (OB_MODE_EDIT | OB_MODE_POSE))) { - objects = BKE_view_layer_array_from_objects_in_mode( - view_layer, - v3d, - r_objects_len, - {.no_dup_data = true, .filter_fn = filter_fn, .filter_userdata = filter_user_data}); + objects = BKE_view_layer_array_from_objects_in_mode(view_layer, + v3d, + r_objects_len, + {.object_mode = ob_active->mode, + .no_dup_data = true, + .filter_fn = filter_fn, + .filter_userdata = filter_user_data}); } else { objects = BKE_view_layer_array_selected_objects( |