Changeset 684 in svn for trunk/processor


Ignore:
Timestamp:
2009-09-29T11:25:01Z (10 years ago)
Author:
Xuefer
Message:

the logic of implemenation of dir/file path fixing was wrong. file/dir path should be cached before hardlink

Location:
trunk/processor
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/processor/head.m4

    r667 r684  
    6565    zend_bool reference; /* enable if to deal with reference */
    6666    zend_bool have_references;
     67    const xc_entry_t *entry_src;
     68    const xc_entry_t *entry_dst;
    6769    const xc_entry_data_php_t *php_src;
    6870    const xc_entry_data_php_t *php_dst;
     
    391393}
    392394/* }}} */
    393 /* export: xc_entry_data_php_t *xc_processor_restore_xc_entry_data_php_t(xc_entry_data_php_t *dst, const xc_entry_data_php_t *src, zend_bool readonly_protection TSRMLS_DC); :export {{{ */
    394 xc_entry_data_php_t *xc_processor_restore_xc_entry_data_php_t(xc_entry_data_php_t *dst, const xc_entry_data_php_t *src, zend_bool readonly_protection TSRMLS_DC) {
     395/* export: xc_entry_data_php_t *xc_processor_restore_xc_entry_data_php_t(const xc_entry_t *xce, xc_entry_data_php_t *dst, const xc_entry_data_php_t *src, zend_bool readonly_protection TSRMLS_DC); :export {{{ */
     396xc_entry_data_php_t *xc_processor_restore_xc_entry_data_php_t(const xc_entry_t *xce, xc_entry_data_php_t *dst, const xc_entry_data_php_t *src, zend_bool readonly_protection TSRMLS_DC) {
    395397    xc_processor_t processor;
    396398
     
    401403        processor.reference = 1;
    402404    }
     405    processor.entry_src = xce;
    403406
    404407    if (processor.reference) {
  • trunk/processor/processor.m4

    r666 r684  
    664664#endif
    665665    } while (0);
    666     IFRESTORE(`xc_fix_op_array_info(processor->php_src, dst, !shallow_copy, op_array_info TSRMLS_CC);')
     666    IFRESTORE(`xc_fix_op_array_info(processor->entry_src, processor->php_src, dst, !shallow_copy, op_array_info TSRMLS_CC);')
    667667
    668668#ifdef ZEND_ENGINE_2
     
    819819    DISPATCH(size_t, size)
    820820
    821     DISPATCH(int, filepath_len)
    822     IFRESTORE(`COPY(filepath)', `PROC_STRING_L(filepath, filepath_len)')
    823     DISPATCH(int, dirpath_len)
    824     IFRESTORE(`COPY(dirpath)', `PROC_STRING_L(dirpath, dirpath_len)')
    825 #ifdef IS_UNICODE
    826     DISPATCH(int, ufilepath_len)
    827     IFRESTORE(`COPY(ufilepath)', `PROC_USTRING_L(ufilepath, ufilepath_len)')
    828     DISPATCH(int, udirpath_len)
    829     IFRESTORE(`COPY(udirpath)', `PROC_USTRING_L(udirpath, udirpath_len)')
    830 #endif
    831 
    832821    IFRESTORE(`COPY(op_array_info)', `
    833822        STRUCT(xc_op_array_info_t, op_array_info)
     
    943932    DISPATCH(int, inode)
    944933#endif
     934
     935    DISPATCH(int, filepath_len)
     936    IFRESTORE(`COPY(filepath)', `PROC_STRING_L(filepath, filepath_len)')
     937    DISPATCH(int, dirpath_len)
     938    IFRESTORE(`COPY(dirpath)', `PROC_STRING_L(dirpath, dirpath_len)')
     939#ifdef IS_UNICODE
     940    DISPATCH(int, ufilepath_len)
     941    IFRESTORE(`COPY(ufilepath)', `PROC_USTRING_L(ufilepath, ufilepath_len)')
     942    DISPATCH(int, udirpath_len)
     943    IFRESTORE(`COPY(udirpath)', `PROC_USTRING_L(udirpath, udirpath_len)')
     944#endif
     945
    945946')
    946947dnl }}}
Note: See TracChangeset for help on using the changeset viewer.