summaryrefslogtreecommitdiff
path: root/pjlib/src/pj/pool_buf.c
diff options
context:
space:
mode:
authorBenny Prijono <bennylp@teluu.com>2007-02-16 21:44:36 +0000
committerBenny Prijono <bennylp@teluu.com>2007-02-16 21:44:36 +0000
commitab9c3ac5334c2e0666a43da968fa175aaea7f281 (patch)
tree34af7d19c89b67332d728576f552f5be0ea1c90c /pjlib/src/pj/pool_buf.c
parentb6e52a72449807da582fd96f098b5a729d6f97d3 (diff)
Fixed ticket #105: unnecessary assert in fixed buffer based pool (pool_buf) on no memory condition
git-svn-id: http://svn.pjsip.org/repos/pjproject/trunk@953 74dad513-b988-da41-8d7b-12977e46ad98
Diffstat (limited to 'pjlib/src/pj/pool_buf.c')
-rw-r--r--pjlib/src/pj/pool_buf.c13
1 files changed, 11 insertions, 2 deletions
diff --git a/pjlib/src/pj/pool_buf.c b/pjlib/src/pj/pool_buf.c
index c373fa75..ce787ce0 100644
--- a/pjlib/src/pj/pool_buf.c
+++ b/pjlib/src/pj/pool_buf.c
@@ -53,17 +53,26 @@ static pj_status_t pool_buf_initialize()
static void* stack_alloc(pj_pool_factory *factory, pj_size_t size)
{
struct creation_param *param;
+ void *buf;
PJ_UNUSED_ARG(factory);
param = pj_thread_local_get(tls);
- PJ_ASSERT_RETURN(param != NULL, NULL);
+ if (param == NULL) {
+ /* Don't assert(), this is normal no-memory situation */
+ return NULL;
+ }
pj_thread_local_set(tls, NULL);
PJ_ASSERT_RETURN(size <= param->size, NULL);
- return param->stack_buf;
+ buf = param->stack_buf;
+
+ /* Prevent the buffer from being reused */
+ param->stack_buf = NULL;
+
+ return buf;
}