allocate()和deallocate()
SGI对第二配置器的allocate()和deallocate()的实现
static void* allocate(size_t __n)
{
void* __ret = 0;
//如果大于128 bytes,调用使用第一级配置器
if (__n > (size_t) _MAX_BYTES) {
__ret = malloc_alloc::allocate(__n); //之前有typedef __malloc_alloc_tempalte<0> malloc_alloc
}
else {
//寻找16个free-lists中合适的一个
_Obj* __STL_VOLATILE* __my_free_list
= _S_free_list + _S_freelist_index(__n);
# ifndef _NOTHREADS
/*REFERENCED*/
_Lock __lock_instance;