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:
authorBrecht Van Lommel <brechtvanlommel@pandora.be>2013-05-18 14:24:34 +0400
committerBrecht Van Lommel <brechtvanlommel@pandora.be>2013-05-18 14:24:34 +0400
commit11186184aa7af143e72c539be0ed06c3ef37a146 (patch)
tree9be7e1160f0bcf9484526068327e99f237907b41 /source/blender/blenkernel/intern/multires.c
parent8da43c5aaf5a0628da8f1523cc902ab82bdd5e20 (diff)
Fix #35404: crash in file save with python code that accesses mesh from panel.
On file save the mesh gets loads from the editmesh but the derived mesh caches wer not cleared. This usually happens through the depsgraph but it needs to be done manually here. Most changes are some refactoring to deduplicate derived mesh freeing code.
Diffstat (limited to 'source/blender/blenkernel/intern/multires.c')
-rw-r--r--source/blender/blenkernel/intern/multires.c7
1 files changed, 2 insertions, 5 deletions
diff --git a/source/blender/blenkernel/intern/multires.c b/source/blender/blenkernel/intern/multires.c
index c1f1ca0bbaa..7bd117ef7ce 100644
--- a/source/blender/blenkernel/intern/multires.c
+++ b/source/blender/blenkernel/intern/multires.c
@@ -373,11 +373,8 @@ void multires_mark_as_modified(Object *ob, MultiresModifiedFlags flags)
void multires_force_update(Object *ob)
{
if (ob) {
- if (ob->derivedFinal) {
- ob->derivedFinal->needsFree = 1;
- ob->derivedFinal->release(ob->derivedFinal);
- ob->derivedFinal = NULL;
- }
+ BKE_object_free_derived_caches(ob);
+
if (ob->sculpt && ob->sculpt->pbvh) {
BKE_pbvh_free(ob->sculpt->pbvh);
ob->sculpt->pbvh = NULL;