Changeset 1319 in svn for trunk


Ignore:
Timestamp:
2013-07-15T17:53:25+02:00 (2 years ago)
Author:
Xuefer
Message:

Decompiler, disassembler: fix unset for PHP 5.0

Location:
trunk
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/lib/Decompiler.class.php

    r1318 r1319  
    16411641                    $dim->isObject = true;
    16421642                }
     1643                else if ($opc == XC_UNSET_DIM_OBJ) {
     1644                    $dim->isObject = $ext == ZEND_UNSET_OBJ;
     1645                }
    16431646                unset($dim);
    16441647                $rvalue = $dimbox;
     
    16511654                    $resvar = str($lvalue, $EX) . ' = ' . str($rvalue);
    16521655                }
    1653                 else if ($opc == XC_UNSET_DIM || $opc == XC_UNSET_OBJ) {
     1656                else if ($opc == XC_UNSET_DIM || $opc == XC_UNSET_OBJ || $opc == XC_UNSET_DIM_OBJ) {
    16541657                    $op['php'] = "unset(" . str($rvalue, $EX) . ")";
    16551658                    $lastphpop = &$op;
     
    28242827    define('ZEND_FE_FETCH_BYREF',     1);
    28252828    define('ZEND_FE_FETCH_WITH_KEY',  2);
     2829}
     2830else {
     2831    define('ZEND_UNSET_DIM',          1);
     2832    define('ZEND_UNSET_OBJ',          2);
    28262833}
    28272834
  • trunk/xcache/xc_opcode_spec_def.h

    r1316 r1319  
    8585    OPSPEC(       STD,        STD,        STD,     UNUSED) /* 75 UNSET_DIM                      */
    8686    OPSPEC(       STD,        STD,        STD,     UNUSED) /* 76 UNSET_OBJ                      */
    87     OPSPEC(       BIT,        STD,     OPLINE,        VAR) /* 77 FE_RESET                       */
    8887#else
    8988  /* <= php 5.0 */
    9089  /* though there is no ISSET_ISEMPTY in php 5.0 it's better to leave it here i guess */
    9190    OPSPEC(    UNUSED,        VAR,        STD,     UNUSED) /* 75 UNSET_DIM_OBJ                  */
    92     OPSPEC(    UNUSED,        VAR,      ISSET,        TMP)
    93     OPSPEC(       BIT,        STD,     UNUSED,        VAR)
    94 #endif
     91    OPSPEC(    UNUSED,        VAR,      ISSET,        TMP) /* 76 UNUSED                         */
     92#endif
     93    OPSPEC(       BIT,        STD,     UNUSED,        VAR) /* 77 FE_RESET                       */
    9594    OPSPEC(        FE,        STD,     OPLINE,        TMP) /* 78 FE_FETCH                       */
    9695    OPSPEC(    UNUSED,        STD,     UNUSED,     UNUSED) /* 79 EXIT                           */
Note: See TracChangeset for help on using the changeset viewer.