Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCampbell Barton <ideasman42@gmail.com>2013-07-22 22:01:27 +0400
committerCampbell Barton <ideasman42@gmail.com>2013-07-22 22:01:27 +0400
commite590abfb87aa3ee14e6946350d55d8960e70dab7 (patch)
tree5ce5e11cc14f64d7ebcdd737e34b8aac34190070 /source/blender/blenkernel/intern/editderivedmesh.c
parent90fdaa82195c2eb9b6412ffa8b4f4f70e16a35dc (diff)
optimization:
- halve the number of allocs in layerInterp_mdeformvert list creation. - use direct loop access in emDM_copyLoopArray
Diffstat (limited to 'source/blender/blenkernel/intern/editderivedmesh.c')
-rw-r--r--source/blender/blenkernel/intern/editderivedmesh.c8
1 files changed, 5 insertions, 3 deletions
diff --git a/source/blender/blenkernel/intern/editderivedmesh.c b/source/blender/blenkernel/intern/editderivedmesh.c
index 9f873cafa55..b853d2b87a2 100644
--- a/source/blender/blenkernel/intern/editderivedmesh.c
+++ b/source/blender/blenkernel/intern/editderivedmesh.c
@@ -1420,18 +1420,20 @@ static void emDM_copyLoopArray(DerivedMesh *dm, MLoop *r_loop)
{
EditDerivedBMesh *bmdm = (EditDerivedBMesh *)dm;
BMesh *bm = bmdm->em->bm;
- BMIter iter, liter;
+ BMIter iter;
BMFace *efa;
BMLoop *l;
BM_mesh_elem_index_ensure(bm, BM_VERT | BM_EDGE);
BM_ITER_MESH (efa, &iter, bm, BM_FACES_OF_MESH) {
- BM_ITER_ELEM (l, &liter, efa, BM_LOOPS_OF_FACE) {
+ BMLoop *l_iter, *l_first;
+ l_iter = l_first = BM_FACE_FIRST_LOOP(efa);
+ do {
r_loop->v = BM_elem_index_get(l->v);
r_loop->e = BM_elem_index_get(l->e);
r_loop++;
- }
+ } while ((l_iter = l_iter->next) != l_first);
}
}