[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [12748] trunk/blender/source/blender/ blenkernel/intern/object.c:

Brecht Van Lommel brechtvanlommel at pandora.be
Sat Dec 1 21:08:31 CET 2007


Revision: 12748
          http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=12748
Author:   blendix
Date:     2007-12-01 21:08:31 +0100 (Sat, 01 Dec 2007)

Log Message:
-----------

Bugfix:
Duplicating or separating objects with a particle system could crash.

Modified Paths:
--------------
    trunk/blender/source/blender/blenkernel/intern/object.c

Modified: trunk/blender/source/blender/blenkernel/intern/object.c
===================================================================
--- trunk/blender/source/blender/blenkernel/intern/object.c	2007-12-01 19:29:50 UTC (rev 12747)
+++ trunk/blender/source/blender/blenkernel/intern/object.c	2007-12-01 20:08:31 UTC (rev 12748)
@@ -1006,12 +1006,26 @@
 ParticleSystem *copy_particlesystem(ParticleSystem *psys)
 {
 	ParticleSystem *psysn;
+	ParticleData *pa;
+	int a;
 
 	psysn= MEM_dupallocN(psys);
 	psysn->particles= MEM_dupallocN(psys->particles);
-
 	psysn->child= MEM_dupallocN(psys->child);
 
+	for(a=0, pa=psysn->particles; a<psysn->totpart; a++, pa++) {
+		if(pa->hair)
+			pa->hair= MEM_dupallocN(pa->hair);
+		if(pa->keys)
+			pa->keys= MEM_dupallocN(pa->keys);
+	}
+
+	if(psys->soft)
+		psysn->soft= copy_softbody(psys->soft);
+	
+	psysn->pathcache= NULL;
+	psysn->childcache= NULL;
+	psysn->edit= NULL;
 	psysn->effectors.first= psysn->effectors.last= 0;
 
 	id_us_plus((ID *)psysn->part);





More information about the Bf-blender-cvs mailing list