1. 程式人生 > >空間配置器

空間配置器

技術 準備 inf alloc opened img lose 找到 isp



技術分享圖片
 1 void* __default_alloc::allocate(size_t n) 
 2 {
 3     obj* volatile *my_free_list;
 4     obj* result;
 5     
 6     if (n > __MAX_BYTES) //若n大於128,則采用第一級適配器
 7         return(malloc_alloc::allocate(n));
 8     
 9     my_free_list = free_list + FREELIST_INDEX(n); //選擇采用第幾區塊
10     result = *my_free_list;
11 if (result == nullptr) 12 { 13 void *r = refill(ROUND_UP(n)); //未找到可用free_list,準備填充free_list 14 return r; 15 } 16 17 *my_free_list = result->free_list_link; //調整freelist 18 return(result); 19 }
View Code

技術分享圖片

空間配置器