空間配置器
阿新 • • 發佈:2018-09-28
技術 準備 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;View Code11 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 }
空間配置器