Changeset 716 in svn for trunk/xcache.c


Ignore:
Timestamp:
2011-04-09T07:07:48Z (4 years ago)
Author:
Xuefer
Message:

PHP 6: initial catch up with php 6 literals and trait

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/xcache.c

    r713 r716  
    11541154    xc_entry_data_php_t *php = (xc_entry_data_php_t *) data;
    11551155
    1156     class_name = opline->op1.u.constant.value.str.val;
    1157     class_len  = opline->op1.u.constant.value.str.len;
     1156    class_name = Z_OP_CONSTANT(opline->op1).value.str.val;
     1157    class_len  = Z_OP_CONSTANT(opline->op1).value.str.len;
    11581158    if (zend_hash_find(CG(class_table), class_name, class_len, (void **) &cest) == FAILURE) {
    11591159        assert(0);
     
    11961196
    11971197#define XCACHE_CHECK_OP(type, op) \
    1198     if (zend_binary_strcmp(Z_STRVAL(opline->op.u.constant), Z_STRLEN(opline->op.u.constant), xce->type##path, xce->type##path_len) == 0) { \
     1198    if (zend_binary_strcmp(Z_STRVAL(Z_OP_CONSTANT(opline->op)), Z_STRLEN(Z_OP_CONSTANT(opline->op)), xce->type##path, xce->type##path_len) == 0) { \
    11991199        usage->type##path_used = 1; \
    12001200        oplineinfo |= xcache_##op##_is_##type; \
     
    12021202
    12031203#define XCACHE_U_CHECK_OP(type, op) \
    1204     if (zend_u_##binary_strcmp(Z_USTRVAL(opline->op.u.constant), Z_USTRLEN(opline->op.u.constant), xce->u##type##path, xce->u##type##path_len) == 0) { \
     1204    if (zend_u_##binary_strcmp(Z_USTRVAL(Z_OP_CONSTANT(opline->op)), Z_USTRLEN(Z_OP_CONSTANT(opline->op)), xce->u##type##path, xce->u##type##path_len) == 0) { \
    12051205        usage->u##type##path_used = 1; \
    12061206        oplineinfo |= xcache_##op##_is_##type; \
     
    12101210        zend_op *opline = &op_array->opcodes[oplineno];
    12111211        int oplineinfo = 0;
    1212         if (opline->op1.op_type == IS_CONST) {
    1213             if (Z_TYPE(opline->op1.u.constant) == IS_STRING) {
     1212        if (Z_OP_TYPE(opline->op1) == IS_CONST) {
     1213            if (Z_TYPE(Z_OP_CONSTANT(opline->op1)) == IS_STRING) {
    12141214                XCACHE_CHECK_OP(file, op1)
    12151215                else XCACHE_CHECK_OP(dir, op1)
     
    12171217
    12181218#ifdef IS_UNICODE
    1219             else if (Z_TYPE(opline->op1.u.constant) == IS_UNICODE) {
     1219            else if (Z_TYPE(Z_OP_CONSTANT(opline->op1)) == IS_UNICODE) {
    12201220                XCACHE_U_CHECK_OP(file, op1)
    12211221                else XCACHE_U_CHECK_OP(dir, op1)
     
    12231223#endif
    12241224        }
    1225         if (opline->op2.op_type == IS_CONST) {
    1226             if (Z_TYPE(opline->op2.u.constant) == IS_STRING) {
     1225        if (Z_OP_TYPE(opline->op2) == IS_CONST) {
     1226            if (Z_TYPE(Z_OP_CONSTANT(opline->op2)) == IS_STRING) {
    12271227                XCACHE_CHECK_OP(file, op2)
    12281228                else XCACHE_CHECK_OP(dir, op2)
     
    12301230
    12311231#ifdef IS_UNICODE
    1232             else if (Z_TYPE(opline->op2.u.constant) == IS_UNICODE) {
     1232            else if (Z_TYPE(Z_OP_CONSTANT(opline->op2)) == IS_UNICODE) {
    12331233                XCACHE_U_CHECK_OP(file, op2)
    12341234                else XCACHE_U_CHECK_OP(dir, op2)
     
    12591259        zend_op *opline = &op_array->opcodes[oplineno];
    12601260        if ((oplineinfo & xcache_op1_is_file)) {
    1261             assert(opline->op1.op_type == IS_CONST);
     1261            assert(Z_OP_TYPE(opline->op1) == IS_CONST);
    12621262            if (copy) {
    1263                 efree(Z_STRVAL(opline->op1.u.constant));
    1264             }
    1265             if (Z_TYPE(opline->op1.u.constant) == IS_STRING) {
     1263                efree(Z_STRVAL(Z_OP_CONSTANT(opline->op1)));
     1264            }
     1265            if (Z_TYPE(Z_OP_CONSTANT(opline->op1)) == IS_STRING) {
    12661266                assert(xce->filepath);
    1267                 ZVAL_STRINGL(&opline->op1.u.constant, xce->filepath, xce->filepath_len, copy);
     1267                ZVAL_STRINGL(&Z_OP_CONSTANT(opline->op1), xce->filepath, xce->filepath_len, copy);
    12681268                TRACE("fixing op1 to %s", xce->filepath);
    12691269            }
    12701270#ifdef IS_UNICODE
    1271             else if (Z_TYPE(opline->op1.u.constant) == IS_UNICODE) {
     1271            else if (Z_TYPE(Z_OP_CONSTANT(opline->op1)) == IS_UNICODE) {
    12721272                assert(xce->ufilepath);
    1273                 ZVAL_UNICODEL(&opline->op1.u.constant, xce->ufilepath, xce->ufilepath_len, copy);
     1273                ZVAL_UNICODEL(&Z_OP_CONSTANT(opline->op1), xce->ufilepath, xce->ufilepath_len, copy);
    12741274            }
    12751275#endif
     
    12791279        }
    12801280        else if ((oplineinfo & xcache_op1_is_dir)) {
    1281             assert(opline->op1.op_type == IS_CONST);
     1281            assert(Z_OP_TYPE(opline->op1) == IS_CONST);
    12821282            if (copy) {
    1283                 efree(Z_STRVAL(opline->op1.u.constant));
    1284             }
    1285             if (Z_TYPE(opline->op1.u.constant) == IS_STRING) {
     1283                efree(Z_STRVAL(Z_OP_CONSTANT(opline->op1)));
     1284            }
     1285            if (Z_TYPE(Z_OP_CONSTANT(opline->op1)) == IS_STRING) {
    12861286                assert(xce->dirpath);
    12871287                TRACE("fixing op1 to %s", xce->dirpath);
    1288                 ZVAL_STRINGL(&opline->op1.u.constant, xce->dirpath, xce->dirpath_len, copy);
     1288                ZVAL_STRINGL(&Z_OP_CONSTANT(opline->op1), xce->dirpath, xce->dirpath_len, copy);
    12891289            }
    12901290#ifdef IS_UNICODE
    1291             else if (Z_TYPE(opline->op1.u.constant) == IS_UNICODE) {
     1291            else if (Z_TYPE(Z_OP_CONSTANT(opline->op1)) == IS_UNICODE) {
    12921292                assert(!xce->udirpath);
    1293                 ZVAL_UNICODEL(&opline->op1.u.constant, xce->udirpath, xce->udirpath_len, copy);
     1293                ZVAL_UNICODEL(&Z_OP_CONSTANT(opline->op1), xce->udirpath, xce->udirpath_len, copy);
    12941294            }
    12951295#endif
     
    13001300
    13011301        if ((oplineinfo & xcache_op2_is_file)) {
    1302             assert(opline->op2.op_type == IS_CONST);
     1302            assert(Z_OP_TYPE(opline->op2) == IS_CONST);
    13031303            if (copy) {
    1304                 efree(Z_STRVAL(opline->op2.u.constant));
    1305             }
    1306             if (Z_TYPE(opline->op2.u.constant) == IS_STRING) {
     1304                efree(Z_STRVAL(Z_OP_CONSTANT(opline->op2)));
     1305            }
     1306            if (Z_TYPE(Z_OP_CONSTANT(opline->op2)) == IS_STRING) {
    13071307                assert(xce->filepath);
    13081308                TRACE("fixing op2 to %s", xce->filepath);
    1309                 ZVAL_STRINGL(&opline->op2.u.constant, xce->filepath, xce->filepath_len, copy);
     1309                ZVAL_STRINGL(&Z_OP_CONSTANT(opline->op2), xce->filepath, xce->filepath_len, copy);
    13101310            }
    13111311#ifdef IS_UNICODE
    1312             else if (Z_TYPE(opline->op2.u.constant) == IS_UNICODE) {
     1312            else if (Z_TYPE(Z_OP_CONSTANT(opline->op2)) == IS_UNICODE) {
    13131313                assert(xce->ufilepath);
    1314                 ZVAL_UNICODEL(&opline->op2.u.constant, xce->ufilepath, xce->ufilepath_len, copy);
     1314                ZVAL_UNICODEL(&Z_OP_CONSTANT(opline->op2), xce->ufilepath, xce->ufilepath_len, copy);
    13151315            }
    13161316#endif
     
    13201320        }
    13211321        else if ((oplineinfo & xcache_op2_is_dir)) {
    1322             assert(opline->op2.op_type == IS_CONST);
     1322            assert(Z_OP_TYPE(opline->op2) == IS_CONST);
    13231323            if (copy) {
    1324                 efree(Z_STRVAL(opline->op2.u.constant));
    1325             }
    1326             if (Z_TYPE(opline->op2.u.constant) == IS_STRING) {
     1324                efree(Z_STRVAL(Z_OP_CONSTANT(opline->op2)));
     1325            }
     1326            if (Z_TYPE(Z_OP_CONSTANT(opline->op2)) == IS_STRING) {
    13271327                assert(!xce->dirpath);
    13281328                TRACE("fixing op2 to %s", xce->dirpath);
    1329                 ZVAL_STRINGL(&opline->op2.u.constant, xce->dirpath, xce->dirpath_len, copy);
     1329                ZVAL_STRINGL(&Z_OP_CONSTANT(opline->op2), xce->dirpath, xce->dirpath_len, copy);
    13301330            }
    13311331#ifdef IS_UNICODE
    1332             else if (Z_TYPE(opline->op2.u.constant) == IS_UNICODE) {
     1332            else if (Z_TYPE(Z_OP_CONSTANT(opline->op2)) == IS_UNICODE) {
    13331333                assert(!xce->udirpath);
    1334                 ZVAL_UNICODEL(&opline->op2.u.constant, xce->udirpath, xce->udirpath_len, copy);
     1334                ZVAL_UNICODEL(&Z_OP_CONSTANT(opline->op2), xce->udirpath, xce->udirpath_len, copy);
    13351335            }
    13361336#endif
     
    30553055}
    30563056/* }}} */
    3057 static function_entry xcache_functions[] = /* {{{ */
     3057static zend_function_entry xcache_functions[] = /* {{{ */
    30583058{
    30593059    PHP_FE(xcache_count,             NULL)
Note: See TracChangeset for help on using the changeset viewer.