Ignore:
Timestamp:
Nov 21, 2005 4:58:03 PM (18 years ago)
Author:
bennylp
Message:

Small optimization in pool (removed used_size)

File:
1 edited

Legend:

Unmodified
Added
Removed
  • pjproject/trunk/pjlib/include/pj/pool_i.h

    r66 r69  
    3030PJ_IDEF(pj_size_t) pj_pool_get_used_size( pj_pool_t *pool ) 
    3131{ 
    32     return pool->used_size; 
     32    pj_pool_block *b = pool->block_list.next; 
     33    pj_size_t used_size = sizeof(pj_pool_t); 
     34    while (b != &pool->block_list) { 
     35        used_size += (b->cur - b->buf) + sizeof(pj_pool_block); 
     36        b = b->next; 
     37    } 
     38    return used_size; 
    3339} 
    3440 
    35 PJ_IDEF(void*) pj_pool_alloc_from_block( pj_pool_t *pool, 
    36                                          pj_pool_block *block, pj_size_t size ) 
     41PJ_IDEF(void*) pj_pool_alloc_from_block( pj_pool_block *block, pj_size_t size ) 
    3742{ 
    3843    /* The operation below is valid for size==0.  
     
    4146     */ 
    4247    if (size & (PJ_POOL_ALIGNMENT-1)) { 
    43         size &= ~(PJ_POOL_ALIGNMENT-1); 
    44         size += PJ_POOL_ALIGNMENT; 
     48        size = (size + PJ_POOL_ALIGNMENT) & ~(PJ_POOL_ALIGNMENT-1); 
    4549    } 
    4650    if ((unsigned)(block->end - block->cur) >= size) { 
    4751        void *ptr = block->cur; 
    4852        block->cur += size; 
    49         pool->used_size += size; 
    5053        return ptr; 
    5154    } 
     
    5558PJ_IDEF(void*) pj_pool_alloc( pj_pool_t *pool, pj_size_t size) 
    5659{ 
    57     pj_pool_block *block = pool->block_list.next; 
    58     void *ptr = pj_pool_alloc_from_block(pool, block, size); 
     60    void *ptr = pj_pool_alloc_from_block(pool->block_list.next, size); 
    5961    if (!ptr) 
    6062        ptr = pj_pool_allocate_find(pool, size); 
Note: See TracChangeset for help on using the changeset viewer.