Revision: 43630
          
http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=43630
Author:   campbellbarton
Date:     2012-01-23 13:15:40 +0000 (Mon, 23 Jan 2012)
Log Message:
-----------
avoid using resizing array for transform (size is known to begin with, use 
single alloc)

Modified Paths:
--------------
    
branches/bmesh/blender/source/blender/editors/transform/transform_conversions.c

Modified: 
branches/bmesh/blender/source/blender/editors/transform/transform_conversions.c
===================================================================
--- 
branches/bmesh/blender/source/blender/editors/transform/transform_conversions.c 
    2012-01-23 08:48:52 UTC (rev 43629)
+++ 
branches/bmesh/blender/source/blender/editors/transform/transform_conversions.c 
    2012-01-23 13:15:40 UTC (rev 43630)
@@ -2026,10 +2026,10 @@
        float *mappedcos = NULL, *quats= NULL;
        float mtx[3][3], smtx[3][3], (*defmats)[3][3] = NULL, (*defcos)[3] = 
NULL;
        float *dists=NULL;
-       int count=0, countsel=0, a, totleft, *selstate = NULL;
-       BLI_array_declare(selstate);
+       int count=0, countsel=0, a, totleft;
        int propmode = (t->flag & T_PROP_EDIT) ? (t->flag & (T_PROP_EDIT | 
T_PROP_CONNECTED)) : 0;
        int mirror = 0;
+       char *selstate = NULL;
        short selectmode = ts->selectmode;
 
        if (t->flag & T_MIRROR)
@@ -2091,12 +2091,11 @@
        }
 
        /* now we can count. we store selection state in selstate, since
-          get_crazy_mapped_editverts messes up the index state of the
-          verts*/
+        * get_crazy_mapped_editverts messes up the index state of the
+        * verts*/
+       selstate = MEM_callocN(sizeof(*selstate) * bm->totvert, __func__);
        eve = BMIter_New(&iter, bm, BM_VERTS_OF_MESH, NULL);
        for(a=0; eve; eve=BMIter_Step(&iter), a++) {
-               BLI_array_growone(selstate);
-
                if (BM_TestHFlag(eve, BM_TMP_TAG)) {
                        selstate[a] = 1;
                        countsel++;
@@ -2257,7 +2256,7 @@
        if (dists)
                MEM_freeN(dists);
        
-       BLI_array_free(selstate);
+       MEM_freeN(selstate);
 
        if (t->flag & T_MIRROR) {
                EDBM_EndMirrorCache(em);

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

Reply via email to