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:
authorBastien Montagne <montagne29@wanadoo.fr>2016-07-08 20:53:57 +0300
committerBastien Montagne <montagne29@wanadoo.fr>2016-07-08 20:53:57 +0300
commit8662f583da216b56cf8f4dbe5f68c9da7999a9f1 (patch)
treed13a385fb3462dd1aecb4d4f69448730a166bdd5 /source/blender/blenkernel/intern/curve.c
parent282de867d48fea9cf930e68ef9553ed5d31cc5fd (diff)
Fix (unreported) broken shapekeys after 'make_local' of datablocks used both directly and directly.
At first thought it was own recent work, but think issue is there since ages actually... Basically, id_make_local() would always localize mesh/curve/lattice shapekeys, even in case obdata localization actually made a local copy instead of localizing original datablock. This was causing shapekeys being localized twice, and other odd nasty effects.
Diffstat (limited to 'source/blender/blenkernel/intern/curve.c')
-rw-r--r--source/blender/blenkernel/intern/curve.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/source/blender/blenkernel/intern/curve.c b/source/blender/blenkernel/intern/curve.c
index 377013bc9e9..485099427e9 100644
--- a/source/blender/blenkernel/intern/curve.c
+++ b/source/blender/blenkernel/intern/curve.c
@@ -242,6 +242,7 @@ void BKE_curve_make_local(Curve *cu)
if (cu->id.us == 1) {
id_clear_lib_data(bmain, &cu->id);
+ BKE_key_make_local(cu->key);
extern_local_curve(cu);
return;
}
@@ -255,6 +256,7 @@ void BKE_curve_make_local(Curve *cu)
if (is_local && is_lib == false) {
id_clear_lib_data(bmain, &cu->id);
+ BKE_key_make_local(cu->key);
extern_local_curve(cu);
}
else if (is_local && is_lib) {