[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [25683] trunk/blender/source/blender: freeing particle modifier would access freed memory ( only to tak the psys to be deleted), set to NULL after freeing and check before tagging.
Campbell Barton
ideasman42 at gmail.com
Sun Jan 3 05:35:51 CET 2010
Revision: 25683
http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=25683
Author: campbellbarton
Date: 2010-01-03 05:35:51 +0100 (Sun, 03 Jan 2010)
Log Message:
-----------
freeing particle modifier would access freed memory (only to tak the psys to be deleted), set to NULL after freeing and check before tagging.
Modified Paths:
--------------
trunk/blender/source/blender/blenkernel/intern/modifier.c
trunk/blender/source/blender/editors/object/object_modifier.c
Modified: trunk/blender/source/blender/blenkernel/intern/modifier.c
===================================================================
--- trunk/blender/source/blender/blenkernel/intern/modifier.c 2010-01-03 04:21:40 UTC (rev 25682)
+++ trunk/blender/source/blender/blenkernel/intern/modifier.c 2010-01-03 04:35:51 UTC (rev 25683)
@@ -6866,7 +6866,10 @@
psmd->dm=0;
}
- psmd->psys->flag |= PSYS_DELETE;
+ /* ED_object_modifier_remove may have freed this first before calling
+ * modifier_free (which calls this function) */
+ if(psmd->psys)
+ psmd->psys->flag |= PSYS_DELETE;
}
static void particleSystemModifier_copyData(ModifierData *md, ModifierData *target)
{
Modified: trunk/blender/source/blender/editors/object/object_modifier.c
===================================================================
--- trunk/blender/source/blender/editors/object/object_modifier.c 2010-01-03 04:21:40 UTC (rev 25682)
+++ trunk/blender/source/blender/editors/object/object_modifier.c 2010-01-03 04:35:51 UTC (rev 25683)
@@ -165,6 +165,7 @@
BLI_remlink(&ob->particlesystem, psmd->psys);
psys_free(ob, psmd->psys);
+ psmd->psys= NULL;
}
else if(md->type == eModifierType_Softbody) {
if(ob->soft) {
More information about the Bf-blender-cvs
mailing list