Ignore:
Timestamp:
2006-12-09T17:27:03+01:00 (8 years ago)
Author:
moo
Message:

restruct cached compile, add md5 table to recognize and merge file with same content

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/processor/processor.m4

    r310 r311  
    479479    dnl readonly_protection=on 
    480480    dnl main op_array && have early binding 
    481     if (!processor->readonly_protection && !(src == processor->xce_src->data.php->op_array && processor->xce_src->data.php->have_early_binding)) { 
     481    if (!processor->readonly_protection && !(src == processor->php_src->op_array && processor->php_src->have_early_binding)) { 
    482482        /* really fast shallow copy */ 
    483483        memcpy(dst, src, sizeof(src[0])); 
     
    719719    zend_uint i; 
    720720 
    721 #ifdef HAVE_INODE 
    722     DISPATCH(int, device) 
    723     DISPATCH(int, inode) 
    724 #endif 
     721    IFCOPY(` 
     722        processor->php_dst = dst; 
     723        processor->php_src = src; 
     724    ') 
     725 
     726    DISPATCH(xc_hash_value_t, hvalue) 
     727    /* skip */ 
     728    DONE(next) 
     729    COPY(cache) 
     730    DISPATCH(xc_md5sum_t, md5) 
     731    DISPATCH(zend_ulong, refcount) 
     732 
    725733    DISPATCH(size_t, sourcesize) 
    726  
    727     DISPATCH(time_t, mtime) 
     734    DISPATCH(zend_ulong, hits) 
     735    DISPATCH(size_t, size) 
    728736 
    729737    STRUCT_P(zend_op_array, op_array) 
     
    750758    DISPATCH(zend_bool, have_early_binding) 
    751759    popdef(`BEFORE_LOOP') 
     760    DISPATCH(zend_bool, have_references) 
    752761') 
    753762dnl }}} 
     
    755764    IFDPRINT(`INDENT()`'fprintf(stderr, "zval:value");') 
    756765    STRUCT_P_EX(zval_ptr, dst->value, src->value, `value', `', `&') 
     766    DISPATCH(zend_bool, have_references) 
    757767    DONE(value) 
    758768') 
     
    760770dnl {{{ xc_entry_t 
    761771DEF_STRUCT_P_FUNC(`xc_entry_t', , ` 
    762     IFCOPY(` 
    763         processor->xce_dst = dst; 
    764         processor->xce_src = src; 
    765     ') 
    766772    DISPATCH(xc_entry_type_t, type) 
    767773    DISPATCH(size_t, size) 
     
    809815        switch (src->type) { 
    810816        case XC_TYPE_PHP: 
    811             STRUCT_P(xc_entry_data_php_t, data.php) 
     817            IFCALCCOPY(`DONE(data.php)', `STRUCT_P(xc_entry_data_php_t, data.php)') 
    812818            break; 
     819 
    813820        case XC_TYPE_VAR: 
    814821            STRUCT_P(xc_entry_data_var_t, data.var) 
    815822            break; 
     823 
    816824        default: 
    817825            assert(0); 
     
    820828    DONE(data) 
    821829    dnl }}} 
    822     DISPATCH(zend_bool, have_references) 
     830    DISPATCH(time_t, mtime) 
     831#ifdef HAVE_INODE 
     832    DISPATCH(int, device) 
     833    DISPATCH(int, inode) 
     834#endif 
    823835') 
    824836dnl }}} 
Note: See TracChangeset for help on using the changeset viewer.