summaryrefslogtreecommitdiff
path: root/pjlib/src/pj/pool_policy_malloc.c
diff options
context:
space:
mode:
authorBenny Prijono <bennylp@teluu.com>2006-07-09 10:05:46 +0000
committerBenny Prijono <bennylp@teluu.com>2006-07-09 10:05:46 +0000
commita567dd53450218eb529055ea47d6453c2ea4c9bc (patch)
tree544f19457e86a9228edd1ae8fa08b4c2688592d0 /pjlib/src/pj/pool_policy_malloc.c
parent3d6623d1bb968ddf93a723639d1853136fbc2330 (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.c28
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);
}