|
|
|
|
@ -6,16 +6,11 @@
|
|
|
|
|
#include "mem.h" |
|
|
|
|
|
|
|
|
|
static size_t g_total_free = 0; |
|
|
|
|
static size_t g_total_allocated = 0; |
|
|
|
|
|
|
|
|
|
size_t memory_pool_get_total_free_blocks(void) { |
|
|
|
|
return g_total_free; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
size_t memory_pool_get_total_allocated(void) { |
|
|
|
|
return g_total_allocated; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
// Инициализировать пул памяти
|
|
|
|
|
struct memory_pool* memory_pool_init(size_t object_size) { |
|
|
|
|
struct memory_pool* pool = u_calloc(1, sizeof(struct memory_pool)); |
|
|
|
|
@ -48,7 +43,6 @@ void* memory_pool_alloc_impl(struct memory_pool* pool, const char* location) {
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
pool->allocations++; |
|
|
|
|
g_total_allocated++; |
|
|
|
|
DEBUG_INFO(DEBUG_CATEGORY_MEMORY, "pool_alloc: %s, total_allocs=%zu", location, pool->allocations); |
|
|
|
|
return u_calloc_impl(1, pool->object_size, location); // Используем calloc для инициализации нулями
|
|
|
|
|
} |
|
|
|
|
@ -99,7 +93,6 @@ void memory_pool_destroy(struct memory_pool* pool) {
|
|
|
|
|
while (obj) { |
|
|
|
|
void* next = *(void**)obj; |
|
|
|
|
g_total_free--; |
|
|
|
|
g_total_allocated--; |
|
|
|
|
u_free(obj); |
|
|
|
|
cnt++; |
|
|
|
|
obj = next; |
|
|
|
|
|