svn merge ^/trunk/blender -r42221:42245
[blender.git] / source / blender / blenkernel / intern / anim.c
index 4ebdd40a8fda6beef08209cd06158307d5fd54b6..ac104dfe206057c92b7de95327c6f19ea042a177 100644 (file)
@@ -1017,7 +1017,7 @@ static void face_duplilist(ListBase *lb, ID *id, Scene *scene, Object *par, floa
        MLoop *mloop;
        MVert *mvert;
        float pmat[4][4], imat[3][3], (*orco)[3] = NULL, w;
-       int lay, oblay, totface, totloop, a;
+       int lay, oblay, totface, a;
        Scene *sce = NULL;
        Group *group = NULL;
        GroupObject *go = NULL;
@@ -1031,30 +1031,17 @@ static void face_duplilist(ListBase *lb, ID *id, Scene *scene, Object *par, floa
        em = me->edit_btmesh;
 
        if(em) {
-               int totvert;
                dm= editbmesh_get_derived_cage(scene, par, em, CD_MASK_BAREMESH);
-               
-               totface= dm->getNumFaces(dm);
-               mpoly= MEM_mallocN(sizeof(MPoly)*totface, "mface temp");
-               dm->copyPolyArray(dm, mpoly);
-
-               totloop= dm->numLoopData; /* BMESH_TODO, we should have an api function for this! */
-               mloop= MEM_mallocN(sizeof(MLoop)*totloop, "mloop temp");
-               dm->copyLoopArray(dm, mloop);
-
-               totvert= dm->getNumVerts(dm);
-               mvert= MEM_mallocN(sizeof(MVert)*totvert, "mvert temp");
-               dm->copyVertArray(dm, mvert);
        }
        else {
                dm = mesh_get_derived_deform(scene, par, CD_MASK_BAREMESH);
-
-               totface= dm->getNumFaces(dm);
-               mpoly= dm->getPolyArray(dm);
-               mloop= dm->getLoopArray(dm);
-               mvert= dm->getVertArray(dm);
        }
 
+       totface= dm->getNumFaces(dm);
+       mpoly= dm->getPolyArray(dm);
+       mloop= dm->getLoopArray(dm);
+       mvert= dm->getVertArray(dm);
+
        if(G.rendering) {
 
                orco= (float(*)[3])get_mesh_orco_verts(par);
@@ -1199,12 +1186,6 @@ static void face_duplilist(ListBase *lb, ID *id, Scene *scene, Object *par, floa
                if (sce)        base= base->next;       /* scene loop */
                else            go= go->next;           /* group loop */
        }
-       
-       if(em) {
-               MEM_freeN(mpoly);
-               MEM_freeN(mloop);
-               MEM_freeN(mvert);
-       }
 
        if(orco)
                MEM_freeN(orco);