Added a new notifyer, NC_SPACE_CHANGED, to signal an editor that
authorJoseph Eagar <joeedh@gmail.com>
Thu, 21 Jan 2010 03:08:57 +0000 (03:08 +0000)
committerJoseph Eagar <joeedh@gmail.com>
Thu, 21 Jan 2010 03:08:57 +0000 (03:08 +0000)
commit7ad7820f7f4c3776f1a5cf04885557f6b937f4bd
tree8bb63050672c0a025ce68161b42f5d62cadbce30
parent467cece2c18516ecc3e347e411776b55c5b4b873
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).
intern/guardedalloc/intern/mallocn.c
source/blender/blenkernel/intern/BME_Customdata.c
source/blender/blenkernel/intern/BME_mesh.c
source/blender/blenkernel/intern/customdata.c
source/blender/blenlib/BLI_mempool.h
source/blender/blenlib/intern/BLI_mempool.c
source/blender/editors/screen/area.c
source/blender/editors/space_action/space_action.c
source/blender/makesdna/intern/SConscript
source/blender/makesrna/intern/SConscript
source/blender/windowmanager/WM_types.h