Ignore:
Timestamp:
2013-07-15T06:40:37+02:00 (14 months ago)
Author:
moo
Message:

Decompiler, disassembler: update PHP 5.0 support

File:
1 edited

Legend:

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

    r1315 r1316  
    15941594            case XC_ASSIGN_DIM: 
    15951595            case XC_UNSET_DIM: 
     1596            case XC_UNSET_DIM_OBJ: 
    15961597            case XC_UNSET_OBJ: 
    15971598                $src = $this->getOpVal($op1, $EX); 
     
    21292130                $flags = array_flip(explode('_', $opname)); 
    21302131                if (isset($flags['OBJ'])) { 
    2131                     $resvar = $this->getOpVal($op1, $EX) . '->' . unquoteVariableName($this->getOpVal($op2, $EX), $EX); 
     2132                    $name = isset($op2['constant']) ? $op2['constant'] : unquoteVariableName($this->getOpVal($op2, $EX), $EX); 
     2133                    $resvar = str($this->getOpVal($op1, $EX)) . '->' . $name; 
    21322134                } 
    21332135                else { 
    2134                     $resvar = $this->getOpVal($op1, $EX); 
     2136                    $resvar = str($this->getOpVal($op1, $EX)); 
    21352137                } 
    21362138                $opstr = isset($flags['DEC']) ? '--' : '++'; 
     
    21662168                assert(isset($type2cast[$type])); 
    21672169                $cast = $type2cast[$type]; 
    2168                 $resvar = $cast . ' ' . $this->getOpVal($op1, $EX); 
     2170                $resvar = $cast . ' ' . str($this->getOpVal($op1, $EX)); 
    21692171                break; 
    21702172                // }}} 
     
    21732175            case XC_EXT_FCALL_END: 
    21742176            case XC_EXT_NOP: 
     2177            case XC_INIT_CTOR_CALL: 
    21752178                break; 
    21762179            case XC_DECLARE_FUNCTION: 
     
    28372840define('IS_LONG',     1); 
    28382841define('IS_DOUBLE',   2); 
    2839 define('IS_BOOL',     3); 
     2842define('IS_BOOL',     ZEND_ENGINE_2_1 ? 3 : 6); 
    28402843define('IS_ARRAY',    4); 
    28412844define('IS_OBJECT',   5); 
    2842 define('IS_STRING',   6); 
     2845define('IS_STRING',   ZEND_ENGINE_2_1 ? 6 : 3); 
    28432846define('IS_RESOURCE', 7); 
    28442847define('IS_CONSTANT', 8); 
     
    28762879    'XC_DO_FCALL_BY_FUNC' => -1, 
    28772880    'XC_GOTO' => -1, 
     2881    'XC_INIT_CTOR_CALL' => -1, 
    28782882    'XC_INIT_FCALL_BY_FUNC' => -1, 
    28792883    'XC_INIT_NS_FCALL_BY_NAME' => -1, 
     
    28842888    'XC_QM_ASSIGN_VAR' => -1, 
    28852889    'XC_UNSET_DIM' => -1, 
     2890    'XC_UNSET_DIM_OBJ' => -1, 
    28862891    'XC_UNSET_OBJ' => -1, 
    28872892    'XC_USER_OPCODE' => -1, 
Note: See TracChangeset for help on using the changeset viewer.