Changeset 1319


Ignore:
Timestamp:
2013-07-15T17:53:25+02:00 (13 months ago)
Author:
moo
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.