diff options
Diffstat (limited to 'src/mem_pool.c')
-rw-r--r-- | src/mem_pool.c | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/src/mem_pool.c b/src/mem_pool.c index 11f74f2f3..363116ce5 100644 --- a/src/mem_pool.c +++ b/src/mem_pool.c @@ -429,6 +429,23 @@ memory_pool_add_destructor (memory_pool_t * pool, pool_destruct_func func, void } void +memory_pool_replace_destructor (memory_pool_t * pool, pool_destruct_func func, void *old_data, void *new_data) +{ + struct _pool_destructors *tmp; + + tmp = pool->destructors; + while (tmp) { + if (tmp->func == func && tmp->data == old_data) { + tmp->func = func; + tmp->data = new_data; + break; + } + tmp = tmp->prev; + } + +} + +void memory_pool_delete (memory_pool_t * pool) { struct _pool_chain *cur = pool->first_pool, *tmp; |