[Bf-blender-cvs] [a3070474e29] blender2.8: Clear the ParticleSettings pointer to prevent doubly-freeing it
Sybren A. Stüvel
noreply at git.blender.org
Fri May 18 16:32:00 CEST 2018
Commit: a3070474e29d6e17e5055397741c70c4dc166ace
Author: Sybren A. Stüvel
Date: Fri May 18 16:29:01 2018 +0200
Branches: blender2.8
https://developer.blender.org/rBa3070474e29d6e17e5055397741c70c4dc166ace
Clear the ParticleSettings pointer to prevent doubly-freeing it
Not happy with the approach, as it adds to nested_id_hack_discard_pointers(),
but at least it fixes a crash.
===================================================================
M source/blender/depsgraph/intern/eval/deg_eval_copy_on_write.cc
===================================================================
diff --git a/source/blender/depsgraph/intern/eval/deg_eval_copy_on_write.cc b/source/blender/depsgraph/intern/eval/deg_eval_copy_on_write.cc
index 40f9402abc8..c8b9702621e 100644
--- a/source/blender/depsgraph/intern/eval/deg_eval_copy_on_write.cc
+++ b/source/blender/depsgraph/intern/eval/deg_eval_copy_on_write.cc
@@ -135,6 +135,15 @@ void nested_id_hack_discard_pointers(ID *id_cow)
SPECIAL_CASE(ID_LT, Lattice, key)
SPECIAL_CASE(ID_ME, Mesh, key)
+ case ID_OB:
+ {
+ /* Clear the ParticleSettings pointer to prevent doubly-freeing it. */
+ Object *ob = (Object *)id_cow;
+ LISTBASE_FOREACH(ParticleSystem *, psys, &ob->particlesystem) {
+ psys->part = NULL;
+ }
+ break;
+ }
# undef SPECIAL_CASE
default:
More information about the Bf-blender-cvs
mailing list