diff options
author | Alexander Gavrilov <angavrilov@gmail.com> | 2019-04-18 21:19:57 +0300 |
---|---|---|
committer | Alexander Gavrilov <angavrilov@gmail.com> | 2019-04-18 21:32:17 +0300 |
commit | 7ec6bca92fd0ee4a3b1dcdf90fdba1f9d0aec11a (patch) | |
tree | aaf24d40b196131cf62bfaa1ff3340e7c17e6bf5 /source/blender/blenkernel/intern/armature.c | |
parent | 64bcdd65bf0727c5e39ac2b3f32bf897bfbf07a1 (diff) |
Fix T63332: backup and restore bPoseChannel_Runtime data during COW.
Diffstat (limited to 'source/blender/blenkernel/intern/armature.c')
-rw-r--r-- | source/blender/blenkernel/intern/armature.c | 6 |
1 files changed, 2 insertions, 4 deletions
diff --git a/source/blender/blenkernel/intern/armature.c b/source/blender/blenkernel/intern/armature.c index 69721651a45..91c760223aa 100644 --- a/source/blender/blenkernel/intern/armature.c +++ b/source/blender/blenkernel/intern/armature.c @@ -948,9 +948,7 @@ static void allocate_bbone_cache(bPoseChannel *pchan, int segments) bPoseChannel_Runtime *runtime = &pchan->runtime; if (runtime->bbone_segments != segments) { - if (runtime->bbone_segments != 0) { - BKE_pose_channel_free_bbone_cache(pchan); - } + BKE_pose_channel_free_bbone_cache(runtime); runtime->bbone_segments = segments; runtime->bbone_rest_mats = MEM_malloc_arrayN( @@ -1020,7 +1018,7 @@ void BKE_pchan_bbone_segments_cache_copy(bPoseChannel *pchan, bPoseChannel *pcha int segments = runtime_from->bbone_segments; if (segments <= 1) { - BKE_pose_channel_free_bbone_cache(pchan); + BKE_pose_channel_free_bbone_cache(&pchan->runtime); } else { allocate_bbone_cache(pchan, segments); |