From aa585b3dbe9af66cc5868dba31b3dac18de08f6d Mon Sep 17 00:00:00 2001 From: Benny Prijono Date: Wed, 2 Jan 2008 08:21:43 +0000 Subject: Defect: new allocator didn't call factory on_block_alloc()/on_block_free() git-svn-id: http://svn.pjsip.org/repos/pjproject/trunk@1652 74dad513-b988-da41-8d7b-12977e46ad98 --- pjlib/src/pj/pool_policy_new.cpp | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/pjlib/src/pj/pool_policy_new.cpp b/pjlib/src/pj/pool_policy_new.cpp index 42771660..651d401c 100644 --- a/pjlib/src/pj/pool_policy_new.cpp +++ b/pjlib/src/pj/pool_policy_new.cpp @@ -33,9 +33,14 @@ static void *operator_new(pj_pool_factory *factory, pj_size_t size) void *mem; PJ_CHECK_STACK(); - PJ_UNUSED_ARG(factory); - PJ_UNUSED_ARG(size); + if (factory->on_block_alloc) { + int rc; + rc = factory->on_block_alloc(factory, size); + if (!rc) + return NULL; + } + mem = (void*) new char[size+(SIG_SIZE << 1)]; /* Exception for new operator may be disabled, so.. */ @@ -52,9 +57,10 @@ static void *operator_new(pj_pool_factory *factory, pj_size_t size) static void operator_delete(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); + /* Check and remove signature when PJ_SAFE_POOL is set. It will * move "mem" pointer backward. */ -- cgit v1.2.3