diff options
author | Benny Prijono <bennylp@teluu.com> | 2006-07-09 10:05:46 +0000 |
---|---|---|
committer | Benny Prijono <bennylp@teluu.com> | 2006-07-09 10:05:46 +0000 |
commit | a567dd53450218eb529055ea47d6453c2ea4c9bc (patch) | |
tree | 544f19457e86a9228edd1ae8fa08b4c2688592d0 /pjlib/src/pj/pool_policy_malloc.c | |
parent | 3d6623d1bb968ddf93a723639d1853136fbc2330 (diff) |
Added feature to report peak memory used in caching pool
git-svn-id: http://svn.pjsip.org/repos/pjproject/trunk@594 74dad513-b988-da41-8d7b-12977e46ad98
Diffstat (limited to 'pjlib/src/pj/pool_policy_malloc.c')
-rw-r--r-- | pjlib/src/pj/pool_policy_malloc.c | 28 |
1 files changed, 22 insertions, 6 deletions
diff --git a/pjlib/src/pj/pool_policy_malloc.c b/pjlib/src/pj/pool_policy_malloc.c index 7387bec4..20f925a7 100644 --- a/pjlib/src/pj/pool_policy_malloc.c +++ b/pjlib/src/pj/pool_policy_malloc.c @@ -30,18 +30,34 @@ static void *default_block_alloc(pj_pool_factory *factory, pj_size_t size) { + void *p; + PJ_CHECK_STACK(); - PJ_UNUSED_ARG(factory); - PJ_UNUSED_ARG(size); - return malloc(size); + if (factory->on_block_alloc) { + int rc; + rc = factory->on_block_alloc(factory, size); + if (!rc) + return NULL; + } + + p = malloc(size); + + if (p == NULL) { + if (factory->on_block_free) + factory->on_block_free(factory, size); + } + + return p; } -static void default_block_free(pj_pool_factory *factory, void *mem, pj_size_t size) +static void default_block_free(pj_pool_factory *factory, void *mem, + pj_size_t size) { PJ_CHECK_STACK(); - PJ_UNUSED_ARG(factory); - PJ_UNUSED_ARG(size); + + if (factory->on_block_free) + factory->on_block_free(factory, size); free(mem); } |