Changeset 1316 in svn for trunk/lib/Decompiler.class.php


Ignore:
Timestamp:
2013-07-15T06:40:37+02:00 (2 years ago)
Author:
Xuefer
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.