Changeset 5412

Show
Ignore:
Timestamp:
03/15/08 16:21:37 (4 months ago)
Author:
morris
Message:

Add wi_pool_init_with_debug() to selectively disable debug for certains pools

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • libwired/trunk/libwired/misc/wi-pool.c

    r5306 r5412  
    136136 
    137137wi_pool_t * wi_pool_init(wi_pool_t *pool) { 
     138        return wi_pool_init_with_debug(pool, true); 
     139} 
     140 
     141 
     142 
     143wi_pool_t * wi_pool_init_with_debug(wi_pool_t *pool, wi_boolean_t debug) { 
    138144        _wi_pool_add_pool(pool); 
    139145 
    140         if(wi_pool_debug) { 
     146        if(wi_pool_debug && debug) { 
    141147                pool->locations = wi_hash_init_with_capacity_and_callbacks(wi_hash_alloc(), 
    142148                        200, wi_hash_null_key_callbacks, wi_hash_default_value_callbacks); 
     
    214220                        instance = *instances++; 
    215221                         
    216                         if(wi_pool_debug) { 
    217                                 if(WI_RUNTIME_BASE(instance)->magic != WI_RUNTIME_MAGIC) 
    218                                         _wi_pool_invalid_abort(pool, instance); 
    219                         } 
     222                        if(WI_RUNTIME_BASE(instance)->magic != WI_RUNTIME_MAGIC) 
     223                                _wi_pool_invalid_abort(pool, instance); 
    220224                         
    221225                        wi_release(instance); 
     
    228232        pool->array = NULL; 
    229233         
    230         if(wi_pool_debug
     234        if(pool->locations
    231235                wi_hash_remove_all_data(pool->locations); 
    232236} 
     
    269273 
    270274static void _wi_pool_invalid_abort(wi_pool_t *pool, wi_runtime_instance_t *instance) { 
    271         if(wi_pool_debug) { 
     275        if(pool->locations) { 
    272276                WI_ASSERT(0, "%p is not a valid instance: 0x%x (autoreleased at %@)", 
    273277                                  instance, 
     
    334338        pool->count++; 
    335339         
    336         if(wi_pool_debug) { 
     340        if(pool->locations) { 
    337341                location = wi_hash_data_for_key(pool->locations, instance); 
    338342                 
  • libwired/trunk/libwired/misc/wi-pool.h

    r5231 r5412  
    4343WI_EXPORT wi_pool_t *                           wi_pool_alloc(void); 
    4444WI_EXPORT wi_pool_t *                           wi_pool_init(wi_pool_t *); 
     45WI_EXPORT wi_pool_t *                           wi_pool_init_with_debug(wi_pool_t *, wi_boolean_t); 
    4546 
    4647WI_EXPORT void                                          wi_pool_drain(wi_pool_t *);