Changeset 334

Show
Ignore:
Timestamp:
08/20/07 19:04:30 (9 months ago)
Author:
bart
Message:

Use some macros to calculate the size

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • eaccelerator/trunk/ea_store.c

    r332 r334  
    4040/******************************************************************************/ 
    4141 
     42// add the given length to the size var and aling it 
     43#define ADDSIZE(size, len) (size) += (len); \ 
     44    EA_SIZE_ALIGN(size); 
     45 
    4246#ifndef DEBUG 
    4347inline 
     
    7175    size_t size = 0; 
    7276 
    73     size += sizeof(zval); 
    74     EA_SIZE_ALIGN(size); 
     77    ADDSIZE(size, sizeof(zval)); 
    7578    size += calc_zval(*from TSRMLS_CC); 
    7679 
     
    8386    size_t size = 0; 
    8487 
    85     size += sizeof(zend_property_info); 
    86     EA_SIZE_ALIGN(size); 
     88    ADDSIZE(size, sizeof(zend_property_info)); 
    8789 
    8890    size += calc_string(from->name, from->name_length + 1 TSRMLS_CC); 
     
    107109    if (source->nNumOfElements > 0) { 
    108110        if (!EAG(compress)) { 
    109             size += source->nTableSize * sizeof(Bucket *); 
    110             EA_SIZE_ALIGN(size); 
     111            ADDSIZE(size, source->nTableSize * sizeof(Bucket *)); 
    111112        } 
    112113        p = start; 
    113114        while (p) { 
    114             size += offsetof(Bucket, arKey) + p->nKeyLength; 
    115             EA_SIZE_ALIGN(size); 
     115            ADDSIZE(size, offsetof(Bucket, arKey) + p->nKeyLength); 
    116116            size += calc_bucket(p->pData TSRMLS_CC); 
    117117            p = p->pListNext; 
     
    135135        case IS_CONSTANT_ARRAY: 
    136136            if (Z_ARRVAL_P(zv) != NULL && Z_ARRVAL_P(zv) != &EG(symbol_table)) { 
    137                 size += sizeof(HashTable); 
    138                 EA_SIZE_ALIGN(size); 
     137                ADDSIZE(size, sizeof(HashTable)); 
    139138                size += calc_zval_hash(Z_ARRVAL_P(zv)); 
    140139            } 
     
    159158 
    160159    if (from->type == ZEND_INTERNAL_FUNCTION) { 
    161         size += sizeof(zend_internal_function); 
    162         EA_SIZE_ALIGN(size); 
     160        ADDSIZE(size, sizeof(zend_internal_function)); 
    163161    } else if (from->type == ZEND_USER_FUNCTION) { 
    164         size += sizeof(ea_op_array); 
    165         EA_SIZE_ALIGN(size); 
     162        ADDSIZE(size, sizeof(ea_op_array)); 
    166163    } else { 
    167164        DBG(ea_debug_error, ("[%d] EACCELERATOR can't cache function \"%s\"\n", getpid(), from->function_name)); 
     
    171168    if (from->num_args > 0) { 
    172169        zend_uint i; 
    173         size += from->num_args * sizeof(zend_arg_info); 
    174         EA_SIZE_ALIGN(size); 
     170        ADDSIZE(size, from->num_args * sizeof(zend_arg_info)); 
    175171        for (i = 0; i < from->num_args; i++) { 
    176172            if (from->arg_info[i].name) { 
     
    208204 
    209205    if (from->opcodes != NULL) { 
    210         size += from->last * sizeof(zend_op); 
    211         EA_SIZE_ALIGN(size); 
     206        ADDSIZE(size, from->last * sizeof(zend_op)); 
    212207 
    213208        opline = from->opcodes; 
     
    225220    } 
    226221    if (from->brk_cont_array != NULL) { 
    227         size += sizeof(zend_brk_cont_element) * from->last_brk_cont; 
    228         EA_SIZE_ALIGN(size); 
     222        ADDSIZE(size, sizeof(zend_brk_cont_element) * from->last_brk_cont); 
    229223    } 
    230224#ifdef ZEND_ENGINE_2 
    231225    if (from->try_catch_array != NULL) { 
    232         size += sizeof(zend_try_catch_element) * from->last_try_catch; 
    233         EA_SIZE_ALIGN(size); 
     226        ADDSIZE(size, sizeof(zend_try_catch_element) * from->last_try_catch); 
    234227    } 
    235228#endif 
    236229    if (from->static_variables != NULL) { 
    237         size += sizeof(HashTable); 
    238         EA_SIZE_ALIGN(size); 
     230        ADDSIZE(size, sizeof(HashTable)); 
    239231        size += calc_zval_hash(from->static_variables); 
    240232    } 
     
    242234    if (from->vars != NULL) { 
    243235        int i; 
    244         size += sizeof(zend_compiled_variable) * from->last_var; 
    245         EA_SIZE_ALIGN(size); 
     236        ADDSIZE(size, sizeof(zend_compiled_variable) * from->last_var); 
    246237        for (i = 0; i < from->last_var; i ++) { 
    247238            size += calc_string(from->vars[i].name, from->vars[i].name_len+1 TSRMLS_CC); 
     
    271262        zend_bailout(); 
    272263    } 
    273     size += sizeof(ea_class_entry); 
    274     EA_SIZE_ALIGN(size); 
     264    ADDSIZE(size, sizeof(ea_class_entry)); 
    275265 
    276266    if (from->name != NULL) { 
     
    300290    if (from->static_members != NULL) { 
    301291#  endif 
    302         size += sizeof(HashTable); 
    303         EA_SIZE_ALIGN(size); 
     292        ADDSIZE(size, sizeof(HashTable)); 
    304293        size += calc_zval_hash(from->static_members); 
    305294    } 
     
    323312 
    324313    zend_hash_init(&EAG(strings), 0, NULL, NULL, 0); 
    325     size += offsetof(ea_cache_entry, realfilename) + len + 1; 
    326     EA_SIZE_ALIGN(size); 
     314    ADDSIZE(size, offsetof(ea_cache_entry, realfilename) + len + 1); 
    327315    zend_hash_add(&EAG(strings), key, len + 1, &key, sizeof(char *), NULL); 
    328316    b = c; 
    329317    while (b != NULL) { 
    330         size += offsetof(ea_fc_entry, htabkey) + b->nKeyLength; 
    331         EA_SIZE_ALIGN(size); 
     318        ADDSIZE(size, offsetof(ea_fc_entry, htabkey) + b->nKeyLength); 
    332319 
    333320        x = b->arKey; 
     
    337324    b = f; 
    338325    while (b != NULL) { 
    339         size += offsetof(ea_fc_entry, htabkey) + b->nKeyLength; 
    340         EA_SIZE_ALIGN(size); 
     326        ADDSIZE(size, offsetof(ea_fc_entry, htabkey) + b->nKeyLength); 
    341327     
    342328        x = b->arKey;