Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'source/blender/editors/mesh/editmesh_undo.c')
-rw-r--r--source/blender/editors/mesh/editmesh_undo.c10
1 files changed, 9 insertions, 1 deletions
diff --git a/source/blender/editors/mesh/editmesh_undo.c b/source/blender/editors/mesh/editmesh_undo.c
index 9f625fd0515..43cad2db185 100644
--- a/source/blender/editors/mesh/editmesh_undo.c
+++ b/source/blender/editors/mesh/editmesh_undo.c
@@ -35,6 +35,7 @@
#include "BKE_editmesh.h"
#include "BKE_key.h"
#include "BKE_layer.h"
+#include "BKE_lib_id.h"
#include "BKE_main.h"
#include "BKE_mesh.h"
#include "BKE_undo_system.h"
@@ -117,6 +118,7 @@ typedef struct UndoMesh {
#ifdef USE_ARRAY_STORE
+/* -------------------------------------------------------------------- */
/** \name Array Store
* \{ */
@@ -508,7 +510,13 @@ static void *undomesh_from_editmesh(UndoMesh *um, BMEditMesh *em, Key *key)
}
#endif
/* make sure shape keys work */
- um->me.key = key ? BKE_key_copy_nolib(key) : NULL;
+ if (key != NULL) {
+ um->me.key = (Key *)BKE_id_copy_ex(
+ NULL, &key->id, NULL, LIB_ID_COPY_LOCALIZE | LIB_ID_COPY_NO_ANIMDATA);
+ }
+ else {
+ um->me.key = NULL;
+ }
/* BM_mesh_validate(em->bm); */ /* for troubleshooting */