Revision: 20767
          
http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=20767
Author:   blendix
Date:     2009-06-09 20:50:02 +0200 (Tue, 09 Jun 2009)

Log Message:
-----------
Fix for bug #18710: a crash with hair emitted from vertices.

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

Modified: trunk/blender/source/blender/blenkernel/intern/particle_system.c
===================================================================
--- trunk/blender/source/blender/blenkernel/intern/particle_system.c    
2009-06-09 18:25:57 UTC (rev 20766)
+++ trunk/blender/source/blender/blenkernel/intern/particle_system.c    
2009-06-09 18:50:02 UTC (rev 20767)
@@ -1307,9 +1307,23 @@
        /* for hair, sort by origindex, allows optimizations in rendering */
        /* however with virtual parents the children need to be in random order 
*/
        if(part->type == PART_HAIR && !(part->childtype==PART_CHILD_FACES && 
part->parents!=0.0)) {
-               COMPARE_ORIG_INDEX= dm->getFaceDataArray(dm, CD_ORIGINDEX);
-               if(COMPARE_ORIG_INDEX)
-                       qsort(index, totpart, sizeof(int), compare_orig_index);
+               if(from != PART_FROM_PARTICLE) {
+                       COMPARE_ORIG_INDEX = NULL;
+
+                       if(from == PART_FROM_VERT) {
+                               if(dm->numVertData)
+                                       COMPARE_ORIG_INDEX= 
dm->getVertDataArray(dm, CD_ORIGINDEX);
+                       }
+                       else {
+                               if(dm->numFaceData)
+                                       COMPARE_ORIG_INDEX= 
dm->getFaceDataArray(dm, CD_ORIGINDEX);
+                       }
+
+                       if(COMPARE_ORIG_INDEX) {
+                               qsort(index, totpart, sizeof(int), 
compare_orig_index);
+                               COMPARE_ORIG_INDEX = NULL;
+                       }
+               }
        }
 
        /* weights are no longer used except for FROM_PARTICLE, which needs 
them zeroed for indexing */


_______________________________________________
Bf-blender-cvs mailing list
[email protected]
http://lists.blender.org/mailman/listinfo/bf-blender-cvs

Reply via email to