[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [19071] trunk/blender/source/blender/ blenkernel/intern/modifier.c: [#18277] Segfault crash by editing mesh with subsurf+ParticleInstance modifiers
André Pinto
andresusanopinto at gmail.com
Sat Feb 21 13:16:29 CET 2009
Revision: 19071
http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=19071
Author: jaguarandi
Date: 2009-02-21 13:15:57 +0100 (Sat, 21 Feb 2009)
Log Message:
-----------
[#18277] Segfault crash by editing mesh with subsurf+ParticleInstance modifiers
particleInstanceModifier_applyModifier uses getVertCo,which is not implemented by ccgDM.
getVertCo was used to simply perform a min/max, so it was fixed to use the apropriate min/max
dm->getMinMax(dm, min_r, max_r);
Maybe the fact ccgDM doesn't implements getVertCo/getVertNo is a bug, since it implements every
other DM function and its strange those are left out.
Modified Paths:
--------------
trunk/blender/source/blender/blenkernel/intern/modifier.c
Modified: trunk/blender/source/blender/blenkernel/intern/modifier.c
===================================================================
--- trunk/blender/source/blender/blenkernel/intern/modifier.c 2009-02-21 11:22:06 UTC (rev 19070)
+++ trunk/blender/source/blender/blenkernel/intern/modifier.c 2009-02-21 12:15:57 UTC (rev 19071)
@@ -6380,20 +6380,11 @@
psys->lattice=psys_get_lattice(ob, psys);
if(psys->flag & (PSYS_HAIR_DONE|PSYS_KEYED)){
- float co[3];
- for(i=0; i< totvert; i++){
- dm->getVertCo(dm,i,co);
- if(i==0){
- min_co=max_co=co[track];
- }
- else{
- if(co[track]<min_co)
- min_co=co[track];
- if(co[track]>max_co)
- max_co=co[track];
- }
- }
+ float min_r[3], max_r[3];
+ dm->getMinMax(dm, min_r, max_r);
+ min_co=min_r[track];
+ max_co=max_r[track];
}
result = CDDM_from_template(dm, maxvert,dm->getNumEdges(dm)*totpart,maxface);
More information about the Bf-blender-cvs
mailing list