BMesh: inline index lookups
authorCampbell Barton <ideasman42@gmail.com>
Wed, 24 Oct 2018 01:54:12 +0000 (12:54 +1100)
committerCampbell Barton <ideasman42@gmail.com>
Wed, 24 Oct 2018 01:54:26 +0000 (12:54 +1100)
For release builds this is now the same as indexing the array directly.

source/blender/bmesh/intern/bmesh_mesh.c
source/blender/bmesh/intern/bmesh_mesh.h

index 185e5412b3db7c0f255a071cab35ce66156d9cf6..4568c3b7965f80bd29d86afc9e3892d4ba8d2918 100644 (file)
@@ -1455,28 +1455,6 @@ void BM_mesh_elem_table_free(BMesh *bm, const char htype)
        }
 }
 
-BMVert *BM_vert_at_index(BMesh *bm, const int index)
-{
-       BLI_assert((index >= 0) && (index < bm->totvert));
-       BLI_assert((bm->elem_table_dirty & BM_VERT) == 0);
-       return bm->vtable[index];
-}
-
-BMEdge *BM_edge_at_index(BMesh *bm, const int index)
-{
-       BLI_assert((index >= 0) && (index < bm->totedge));
-       BLI_assert((bm->elem_table_dirty & BM_EDGE) == 0);
-       return bm->etable[index];
-}
-
-BMFace *BM_face_at_index(BMesh *bm, const int index)
-{
-       BLI_assert((index >= 0) && (index < bm->totface));
-       BLI_assert((bm->elem_table_dirty & BM_FACE) == 0);
-       return bm->ftable[index];
-}
-
-
 BMVert *BM_vert_at_index_find(BMesh *bm, const int index)
 {
        return BLI_mempool_findelem(bm->vpool, index);
index d449aac04f5bef1fff969590e6238ad16c5d4ebe..9d7866c280a3558e4d00e1198dfaf92be4605c2d 100644 (file)
@@ -75,9 +75,24 @@ void           BM_mesh_elem_table_ensure(BMesh *bm, const char htype);
 void           BM_mesh_elem_table_init(BMesh *bm, const char htype);
 void           BM_mesh_elem_table_free(BMesh *bm, const char htype);
 
-BMVert *BM_vert_at_index(BMesh *bm, const int index);
-BMEdge *BM_edge_at_index(BMesh *bm, const int index);
-BMFace *BM_face_at_index(BMesh *bm, const int index);
+BLI_INLINE BMVert *BM_vert_at_index(BMesh *bm, const int index)
+{
+       BLI_assert((index >= 0) && (index < bm->totvert));
+       BLI_assert((bm->elem_table_dirty & BM_VERT) == 0);
+       return bm->vtable[index];
+}
+BLI_INLINE BMEdge *BM_edge_at_index(BMesh *bm, const int index)
+{
+       BLI_assert((index >= 0) && (index < bm->totedge));
+       BLI_assert((bm->elem_table_dirty & BM_EDGE) == 0);
+       return bm->etable[index];
+}
+BLI_INLINE BMFace *BM_face_at_index(BMesh *bm, const int index)
+{
+       BLI_assert((index >= 0) && (index < bm->totface));
+       BLI_assert((bm->elem_table_dirty & BM_FACE) == 0);
+       return bm->ftable[index];
+}
 
 BMVert *BM_vert_at_index_find(BMesh *bm, const int index);
 BMEdge *BM_edge_at_index_find(BMesh *bm, const int index);