[Bf-blender-cvs] [3b38fd6] master: Fix T46720: Crash applying subsurf modifier
Campbell Barton
noreply at git.blender.org
Tue Nov 10 16:12:42 CET 2015
Commit: 3b38fd6bf92cd9abc502346198e54191a247e860
Author: Campbell Barton
Date: Wed Nov 11 01:56:39 2015 +1100
Branches: master
https://developer.blender.org/rB3b38fd6bf92cd9abc502346198e54191a247e860
Fix T46720: Crash applying subsurf modifier
Freeing a modifier that had data in the derived mesh could crash
(applying or removing).
===================================================================
M source/blender/blenkernel/intern/object.c
M source/blender/editors/object/object_modifier.c
===================================================================
diff --git a/source/blender/blenkernel/intern/object.c b/source/blender/blenkernel/intern/object.c
index 1e34560..5d5bfd9 100644
--- a/source/blender/blenkernel/intern/object.c
+++ b/source/blender/blenkernel/intern/object.c
@@ -211,6 +211,9 @@ void BKE_object_free_modifiers(Object *ob)
/* same for softbody */
BKE_object_free_softbody(ob);
+
+ /* modifiers may have stored data in the DM cache */
+ BKE_object_free_derived_caches(ob);
}
void BKE_object_modifier_hook_reset(Object *ob, HookModifierData *hmd)
diff --git a/source/blender/editors/object/object_modifier.c b/source/blender/editors/object/object_modifier.c
index 8ef2bd1..b7d1d6b 100644
--- a/source/blender/editors/object/object_modifier.c
+++ b/source/blender/editors/object/object_modifier.c
@@ -324,6 +324,7 @@ static bool object_modifier_remove(Main *bmain, Object *ob, ModifierData *md,
BLI_remlink(&ob->modifiers, md);
modifier_free(md);
+ BKE_object_free_derived_caches(ob);
return 1;
}
@@ -709,6 +710,8 @@ int ED_object_modifier_apply(ReportList *reports, Scene *scene, Object *ob, Modi
BLI_remlink(&ob->modifiers, md);
modifier_free(md);
+ BKE_object_free_derived_caches(ob);
+
return 1;
}
More information about the Bf-blender-cvs
mailing list