Blender Git Commit Log

Git Commits -> Revision 07b1608

Revision 07b1608 by Geoffrey Bantle (master)
June 1, 2008, 17:15 (GMT)
-> New memory allocator for Bmesh

Added a new pooling allocator for Bmesh based upon
the pool allocator availible in the Boost C++ library
as described here:

http://www.boost.org/doc/libs/1_34_0/libs/pool/doc/concepts.html

Each pool allocates elements of a fixed size, so every
element type in a mesh gets its own pool. For instance
verts occupy a different pool than edges. Each pool
is comprised of multiple arrays of a fixed size and allocating
/freeing elements is simple as removing or adding a head
to a linked list. Since the list of free elements is interleaved
throughout the unused space in the arrays, the overhead
for storing the free list is only 1 pointer total per pool.

This makes building/destroying bmesh structures much faster
and saves quite a bit of memory as well.

Commit Details:

Full Hash: 07b1608fbe52f729eae39c307060f92948aabf37
SVN Revision: 15081
Parent Commit: 652ee1e
Lines Changed: +184, -77

6 Modified Paths:

/source/blender/blenkernel/BKE_bmesh.h (+13, -6) (Diff)
/source/blender/blenkernel/intern/bmesh_private.h (+10, -1) (Diff)
/source/blender/blenkernel/intern/BME_mesh.c (+21, -44) (Diff)
/source/blender/blenkernel/intern/BME_structure.c (+138, -24) (Diff)
/source/blender/blenkernel/intern/modifier.c (+1, -1) (Diff)
/source/blender/src/editmesh_tools.c (+1, -1) (Diff)
By: Miika HämäläinenLast update: Nov-07-2014 14:18MiikaHweb | 2003-2021