diff options
Diffstat (limited to 'source/blender/blenkernel/intern/anim.c')
-rw-r--r-- | source/blender/blenkernel/intern/anim.c | 31 |
1 files changed, 6 insertions, 25 deletions
diff --git a/source/blender/blenkernel/intern/anim.c b/source/blender/blenkernel/intern/anim.c index 4ebdd40a8fd..ac104dfe206 100644 --- a/source/blender/blenkernel/intern/anim.c +++ b/source/blender/blenkernel/intern/anim.c @@ -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); |