From 0964ae5266541f09a1d54d8941393bada97d08a2 Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Tue, 4 Feb 2020 18:26:57 +1100 Subject: Fix T73234: Undo/redo with local collection crashes Resolves crashes when edit-mode undo data wasn't included because it wasn't visible, also resolves T73416. --- source/blender/editors/mesh/editmesh_undo.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'source/blender/editors/mesh') diff --git a/source/blender/editors/mesh/editmesh_undo.c b/source/blender/editors/mesh/editmesh_undo.c index faa80341b0f..951efdc6127 100644 --- a/source/blender/editors/mesh/editmesh_undo.c +++ b/source/blender/editors/mesh/editmesh_undo.c @@ -672,7 +672,8 @@ static void undomesh_free_data(UndoMesh *um) static Object *editmesh_object_from_context(bContext *C) { - Object *obedit = CTX_data_edit_object(C); + ViewLayer *view_layer = CTX_data_view_layer(C); + Object *obedit = OBEDIT_FROM_VIEW_LAYER(view_layer); if (obedit && obedit->type == OB_MESH) { Mesh *me = obedit->data; if (me->edit_mesh != NULL) { @@ -715,8 +716,7 @@ static bool mesh_undosys_step_encode(struct bContext *C, struct Main *bmain, Und * outside of this list will be moved out of edit-mode when reading back undo steps. */ ViewLayer *view_layer = CTX_data_view_layer(C); uint objects_len = 0; - Object **objects = BKE_view_layer_array_from_objects_in_edit_mode_unique_data( - view_layer, NULL, &objects_len); + Object **objects = ED_undo_editmode_objects_from_view_layer(view_layer, &objects_len); us->elems = MEM_callocN(sizeof(*us->elems) * objects_len, __func__); us->elems_len = objects_len; -- cgit v1.2.3