From 7ad7820f7f4c3776f1a5cf04885557f6b937f4bd Mon Sep 17 00:00:00 2001 From: Joseph Eagar Date: Thu, 21 Jan 2010 03:08:57 +0000 Subject: Added a new notifyer, NC_SPACE_CHANGED, to signal an editor that replaces another so it can do updates (e.g. dopesheet editor can sync channel selection). Also coded a simple optimization for allocating small objects, based on mempools. It's #ifdef'd out, you can enabled it by defining OPTIMIZE_SMALL_BLOCKS (e.g. adding -DDOPTIMIZE_SMALL_BLOCKS to your compiler flags). We suffer from a great deal of performance loss from the system allocator (vgroups, ghash, edgehash, the singly-linked list implementation in blenlib, editmesh, and likely a great many areas I'm forgetting), and this is the common solution for handling the many-small-objects problem. It's not really production-ready yet (it's long-term memory consequencers need to be profiled first, and the implementation tweaked as necassary), but for people on systems with slow system allocators it's worth trying. Note that since this creates a guardedalloc<->blenlib link, the build systems need to be updated accordingly (I've already done this for scons, though I'm not sure if the player builds). --- source/blender/blenkernel/intern/BME_mesh.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) (limited to 'source/blender/blenkernel/intern/BME_mesh.c') diff --git a/source/blender/blenkernel/intern/BME_mesh.c b/source/blender/blenkernel/intern/BME_mesh.c index f635cfcfcd2..3b769a11ccb 100644 --- a/source/blender/blenkernel/intern/BME_mesh.c +++ b/source/blender/blenkernel/intern/BME_mesh.c @@ -55,10 +55,10 @@ BME_Mesh *BME_make_mesh(int allocsize[4]) /*allocate the structure*/ BME_Mesh *bm = MEM_callocN(sizeof(BME_Mesh),"BMesh"); /*allocate the memory pools for the mesh elements*/ - bm->vpool = BLI_mempool_create(sizeof(BME_Vert), allocsize[0], allocsize[0]); - bm->epool = BLI_mempool_create(sizeof(BME_Edge), allocsize[1], allocsize[1]); - bm->lpool = BLI_mempool_create(sizeof(BME_Loop), allocsize[2], allocsize[2]); - bm->ppool = BLI_mempool_create(sizeof(BME_Poly), allocsize[3], allocsize[3]); + bm->vpool = BLI_mempool_create(sizeof(BME_Vert), allocsize[0], allocsize[0], 0); + bm->epool = BLI_mempool_create(sizeof(BME_Edge), allocsize[1], allocsize[1], 0); + bm->lpool = BLI_mempool_create(sizeof(BME_Loop), allocsize[2], allocsize[2], 0); + bm->ppool = BLI_mempool_create(sizeof(BME_Poly), allocsize[3], allocsize[3], 0); return bm; } /* -- cgit v1.2.3 From 081c1205a31cb12ef632565b8d0c3fce024aa339 Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Fri, 12 Feb 2010 13:34:04 +0000 Subject: correct fsf address --- source/blender/blenkernel/intern/BME_mesh.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'source/blender/blenkernel/intern/BME_mesh.c') diff --git a/source/blender/blenkernel/intern/BME_mesh.c b/source/blender/blenkernel/intern/BME_mesh.c index 3b769a11ccb..c34695b2fb5 100644 --- a/source/blender/blenkernel/intern/BME_mesh.c +++ b/source/blender/blenkernel/intern/BME_mesh.c @@ -20,7 +20,7 @@ * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software Foundation, - * Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. * * The Original Code is Copyright (C) 2007 Blender Foundation. * All rights reserved. -- cgit v1.2.3