This commit is contained in:
2026-07-09 10:16:24 +08:00
parent 946ae6ac9a
commit 4cb5880258
4 changed files with 27 additions and 12 deletions
+6 -2
View File
@@ -2,13 +2,15 @@
#include "os_macros.h"
#include "os_align.h"
void pool_add_block(pool_t* self, void* block, os_size_t block_size){
os_bool_t pool_add_block(pool_t* self, void* block, os_size_t block_size){
// 对齐
os_uintptr_t init_start = (os_uintptr_t)block; // 初始的位置
os_uintptr_t start = OS_ALIGN_UP(init_start, OS_ALIGN_SIZE); // 向上对齐后的位置
block_size -= (start - init_start); // 实际使用的块大小
OS_ASSERT(block_size > self->obj_size);
if(block_size < self->obj_size){
return OS_FALSE;
}
// 将内存块拆成 obj_size 大小
os_size_t count = block_size/self->obj_size;
@@ -19,5 +21,7 @@ void pool_add_block(pool_t* self, void* block, os_size_t block_size){
((pool_link_t*)last)->next = 0;
self->free_list_p = (pool_link_t*)start;
self->capacity += count;
return OS_TRUE;
}