diff options
author | Bastien Montagne <montagne29@wanadoo.fr> | 2016-07-08 20:53:57 +0300 |
---|---|---|
committer | Bastien Montagne <montagne29@wanadoo.fr> | 2016-07-08 20:53:57 +0300 |
commit | 8662f583da216b56cf8f4dbe5f68c9da7999a9f1 (patch) | |
tree | d13a385fb3462dd1aecb4d4f69448730a166bdd5 /source/blender/blenkernel/intern/curve.c | |
parent | 282de867d48fea9cf930e68ef9553ed5d31cc5fd (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.c | 2 |
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) { |