Changeset 1521 in svn


Ignore:
Timestamp:
2014-09-11T08:11:24Z (3 years ago)
Author:
Xuefer
Message:

disable __DIR__ recognization for <=PHP_5_2

Location:
trunk
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • trunk/mod_cacher/xc_cache.h

    r1321 r1521  
    160160    size_t filepath_len;
    161161    ZEND_24(NOTHING, const) char *filepath;
     162#ifdef ZEND_ENGINE_2_3
    162163    size_t dirpath_len;
    163164    char  *dirpath;
     165#endif
    164166#ifdef IS_UNICODE
    165167    int    ufilepath_len;
    166168    UChar *ufilepath;
     169#   ifdef ZEND_ENGINE_2_3
    167170    int    udirpath_len;
    168171    UChar *udirpath;
     172#   endif
    169173#endif
    170174} xc_entry_php_t;
  • trunk/mod_cacher/xc_cacher.c

    r1482 r1521  
    942942    } \
    943943} while (0)
     944#ifdef ZEND_ENGINE_2_3
    944945    X_FREE(dirpath);
     946#endif
    945947#ifdef IS_UNICODE
    946948    X_FREE(ufilepath);
     949#   ifdef ZEND_ENGINE_2_3
    947950    X_FREE(udirpath);
     951#   endif
    948952#endif
    949953
     
    12671271
    12681272    compiler->new_entry.filepath  = NULL;
     1273#ifdef ZEND_ENGNIE_2_3
    12691274    compiler->new_entry.dirpath   = NULL;
     1275#endif
    12701276#ifdef IS_UNICODE
    12711277    compiler->new_entry.ufilepath = NULL;
     1278#   ifdef ZEND_ENGNIE_2_3
    12721279    compiler->new_entry.udirpath  = NULL;
     1280#   endif
    12731281#endif
    12741282
     
    13251333    entry_php->filepath     = ZEND_24((char *), NOTHING) filepath;
    13261334    entry_php->filepath_len = strlen(entry_php->filepath);
     1335#ifdef ZEND_ENGNIE_2_3
    13271336    entry_php->dirpath      = estrndup(entry_php->filepath, entry_php->filepath_len);
    13281337    entry_php->dirpath_len  = zend_dirname(entry_php->dirpath, entry_php->filepath_len);
     1338#endif
    13291339#ifdef IS_UNICODE
    13301340    zend_string_to_unicode(ZEND_U_CONVERTER(UG(runtime_encoding_conv)), &entry_php->ufilepath, &entry_php->ufilepath_len, entry_php->filepath, entry_php->filepath_len TSRMLS_CC);
     1341#   ifdef ZEND_ENGNIE_2_3
    13311342    zend_string_to_unicode(ZEND_U_CONVERTER(UG(runtime_encoding_conv)), &entry_php->udirpath,  &entry_php->udirpath_len,  entry_php->dirpath,  entry_php->dirpath_len TSRMLS_CC);
     1343#   endif
    13321344#endif
    13331345}
     
    13661378/* {{{ Constant Usage */
    13671379#ifdef ZEND_ENGINE_2_4
    1368 #   define xcache_literal_is_dir 1
    1369 #   define xcache_literal_is_file 2
     1380#   define xcache_literal_is_file 1
     1381#   define xcache_literal_is_dir 2
    13701382#else
    13711383#   define xcache_op1_is_file 1
    1372 #   define xcache_op1_is_dir  2
    1373 #   define xcache_op2_is_file 4
    1374 #   define xcache_op2_is_dir  8
     1384#   define xcache_op2_is_file 2
     1385#   ifdef ZEND_ENGINE_2_3
     1386#       define xcache_op1_is_dir  4
     1387#       define xcache_op2_is_dir  8
     1388#   endif
    13751389#endif
    13761390typedef struct {
    13771391    zend_bool filepath_used;
     1392#ifdef ZEND_ENGINE_2_3
    13781393    zend_bool dirpath_used;
     1394#endif
     1395#ifdef IS_UNICODE
    13791396    zend_bool ufilepath_used;
     1397#   ifdef ZEND_ENGINE_2_3
    13801398    zend_bool udirpath_used;
     1399#   endif
     1400#endif
    13811401} xc_const_usage_t;
    13821402/* }}} */
     
    14241444            else XCACHE_ANALYZE_LITERAL(dir)
    14251445        }
    1426 #ifdef IS_UNICODE
     1446#   ifdef IS_UNICODE
    14271447        else if (Z_TYPE(literal->constant) == IS_UNICODE) {
    14281448            XCACHE_U_ANALYZE_LITERAL(file)
    14291449            else XCACHE_U_ANALYZE_LITERAL(dir)
    14301450        }
    1431 #endif
     1451#   endif
    14321452        if (literalinfo) {
    14331453            xc_op_array_info_detail_t detail;
     
    14471467            if (Z_TYPE(Z_OP_CONSTANT(opline->op1)) == IS_STRING) {
    14481468                XCACHE_ANALYZE_OP(file, op1)
     1469#   ifdef ZEND_ENGINE_2_3
    14491470                else XCACHE_ANALYZE_OP(dir, op1)
    1450             }
    1451 #ifdef IS_UNICODE
     1471#   endif
     1472            }
     1473#   ifdef IS_UNICODE
    14521474            else if (Z_TYPE(Z_OP_CONSTANT(opline->op1)) == IS_UNICODE) {
    14531475                XCACHE_U_ANALYZE_OP(file, op1)
     1476#       ifdef ZEND_ENGINE_2_3
    14541477                else XCACHE_U_ANALYZE_OP(dir, op1)
    1455             }
    1456 #endif
     1478#       endif
     1479            }
     1480#   endif
    14571481        }
    14581482
     
    14601484            if (Z_TYPE(Z_OP_CONSTANT(opline->op2)) == IS_STRING) {
    14611485                XCACHE_ANALYZE_OP(file, op2)
     1486#   ifdef ZEND_ENGINE_2_3
    14621487                else XCACHE_ANALYZE_OP(dir, op2)
    1463             }
    1464 #ifdef IS_UNICODE
     1488#   endif
     1489            }
     1490#   ifdef IS_UNICODE
    14651491            else if (Z_TYPE(Z_OP_CONSTANT(opline->op2)) == IS_UNICODE) {
    14661492                XCACHE_U_ANALYZE_OP(file, op2)
     1493#       ifdef ZEND_ENGINE_2_3
    14671494                else XCACHE_U_ANALYZE_OP(dir, op2)
    1468             }
    1469 #endif
     1495#       endif
     1496            }
     1497#   endif
    14701498        }
    14711499
     
    15491577                TRACE("restored op1 constant: %s", entry_php->filepath);
    15501578            }
    1551 #ifdef IS_UNICODE
     1579#   ifdef IS_UNICODE
    15521580            else if (Z_TYPE(Z_OP_CONSTANT(opline->op1)) == IS_UNICODE) {
    15531581                assert(entry_php->ufilepath);
    15541582                ZVAL_UNICODEL(&Z_OP_CONSTANT(opline->op1), entry_php->ufilepath, entry_php->ufilepath_len, !shallow_copy);
    15551583            }
    1556 #endif
     1584#   endif
    15571585            else {
    15581586                assert(0);
    15591587            }
    15601588        }
     1589#   ifdef ZEND_ENGINE_2_3
    15611590        else if ((oplineinfo & xcache_op1_is_dir)) {
    15621591            assert(Z_OP_TYPE(opline->op1) == IS_CONST);
     
    15691598                ZVAL_STRINGL(&Z_OP_CONSTANT(opline->op1), entry_php->dirpath, entry_php->dirpath_len, !shallow_copy);
    15701599            }
    1571 #ifdef IS_UNICODE
     1600#       ifdef IS_UNICODE
    15721601            else if (Z_TYPE(Z_OP_CONSTANT(opline->op1)) == IS_UNICODE) {
    15731602                assert(!entry_php->udirpath);
    15741603                ZVAL_UNICODEL(&Z_OP_CONSTANT(opline->op1), entry_php->udirpath, entry_php->udirpath_len, !shallow_copy);
    15751604            }
    1576 #endif
     1605#       endif
    15771606            else {
    15781607                assert(0);
    15791608            }
    15801609        }
     1610#endif
    15811611
    15821612        if ((oplineinfo & xcache_op2_is_file)) {
     
    15901620                ZVAL_STRINGL(&Z_OP_CONSTANT(opline->op2), entry_php->filepath, entry_php->filepath_len, !shallow_copy);
    15911621            }
    1592 #ifdef IS_UNICODE
     1622#   ifdef IS_UNICODE
    15931623            else if (Z_TYPE(Z_OP_CONSTANT(opline->op2)) == IS_UNICODE) {
    15941624                assert(entry_php->ufilepath);
    15951625                ZVAL_UNICODEL(&Z_OP_CONSTANT(opline->op2), entry_php->ufilepath, entry_php->ufilepath_len, !shallow_copy);
    15961626            }
    1597 #endif
     1627#   endif
    15981628            else {
    15991629                assert(0);
    16001630            }
    16011631        }
     1632#   ifdef ZEND_ENGINE_2_3
    16021633        else if ((oplineinfo & xcache_op2_is_dir)) {
    16031634            assert(Z_OP_TYPE(opline->op2) == IS_CONST);
     
    16101641                ZVAL_STRINGL(&Z_OP_CONSTANT(opline->op2), entry_php->dirpath, entry_php->dirpath_len, !shallow_copy);
    16111642            }
    1612 #ifdef IS_UNICODE
     1643#       ifdef IS_UNICODE
    16131644            else if (Z_TYPE(Z_OP_CONSTANT(opline->op2)) == IS_UNICODE) {
    16141645                assert(entry_php->udirpath);
    16151646                ZVAL_UNICODEL(&Z_OP_CONSTANT(opline->op2), entry_php->udirpath, entry_php->udirpath_len, !shallow_copy);
    16161647            }
    1617 #endif
     1648#       endif
    16181649            else {
    16191650                assert(0);
    16201651            }
    16211652        }
     1653#   endif
    16221654    }
    16231655#endif /* ZEND_ENGINE_2_4 */
     
    18651897        }
    18661898        /* filepath is required to restore op_array->filename, so no free filepath here */
     1899#ifdef ZEND_ENGINE_2_3
    18671900        X_FREE_UNUSED(dir)
     1901#endif
    18681902#ifdef IS_UNICODE
    18691903        X_FREE_UNUSED(ufile)
     1904#   ifdef ZEND_ENGINE_2_3
    18701905        X_FREE_UNUSED(udir)
     1906#   endif
    18711907#endif
    18721908#undef X_FREE_UNUSED
  • trunk/processor/processor.m4

    r1496 r1521  
    13091309    PROCESS(size_t, filepath_len)
    13101310    IFRESTORE(`COPYPOINTER(filepath)', `PROC_STRING_L(filepath, filepath_len)')
     1311#ifdef ZEND_ENGINE_2_3
    13111312    PROCESS(size_t, dirpath_len)
    13121313    IFRESTORE(`COPYPOINTER(dirpath)', `PROC_STRING_L(dirpath, dirpath_len)')
     1314#endif
    13131315#ifdef IS_UNICODE
    13141316    PROCESS(int, ufilepath_len)
    13151317    IFRESTORE(`COPYPOINTER(ufilepath)', `PROC_USTRING_L(ufilepath, ufilepath_len)')
     1318#   ifdef ZEND_ENGINE_2_3
    13161319    PROCESS(int, udirpath_len)
    13171320    IFRESTORE(`COPYPOINTER(udirpath)', `PROC_USTRING_L(udirpath, udirpath_len)')
     1321#   endif
    13181322#endif
    13191323')
Note: See TracChangeset for help on using the changeset viewer.