Ignore:
Timestamp:
2013-07-15T05:05:24+02:00 (18 months ago)
Author:
moo
Message:

Decompiler, disassembler: update PHP 5.0 support

File:
1 edited

Legend:

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

    r1309 r1314  
    263263    public $fetchType; 
    264264 
    265     function Decompiler_Fetch($src, $type, $globalsrc) 
     265    function Decompiler_Fetch($src, $type, $globalSrc) 
    266266    { 
    267267        $this->src = $src; 
    268268        $this->fetchType = $type; 
    269         $this->globalsrc = $globalsrc; 
     269        $this->globalSrc = $globalSrc; 
    270270    } 
    271271 
     
    274274        switch ($this->fetchType) { 
    275275        case ZEND_FETCH_LOCAL: 
    276             return '$' . substr($this->src, 1, -1); 
     276            return '$' . $this->src; 
    277277        case ZEND_FETCH_STATIC: 
    278278            if (ZEND_ENGINE_2_3) { 
     
    283283        case ZEND_FETCH_GLOBAL: 
    284284        case ZEND_FETCH_GLOBAL_LOCK: 
    285             return $this->globalsrc; 
     285            return $this->globalSrc; 
    286286        default: 
    287287            var_dump($this->fetchType); 
     
    12601260                if (!assert('$blockLast <= $range[1]')) { 
    12611261                    var_dump($blockLast, $range[1]); 
     1262                    printBacktrace(); 
    12621263                } 
    12631264 
     
    15591560                } 
    15601561                else { 
    1561                     $rvalue = $this->getOpVal($op1, $EX); 
    1562                     $globalname = xcache_is_autoglobal($name) ? "\$$name" : "\$GLOBALS[" . str($rvalue) . "]"; 
    1563                     $rvalue = new Decompiler_Fetch($rvalue, $fetchType, $globalname); 
     1562                    $rvalue = isset($op1['constant']) ? $op1['constant'] : $this->getOpVal($op1, $EX); 
     1563                    $globalName = xcache_is_autoglobal($name) ? "\$$name" : "\$GLOBALS[" . $this->getOpVal($op1, $EX) . "]"; 
     1564                    $rvalue = new Decompiler_Fetch($rvalue, $fetchType, $globalName); 
    15641565                } 
    15651566 
     
    15921593            case XC_FETCH_DIM_IS: 
    15931594            case XC_ASSIGN_DIM: 
    1594             case XC_UNSET_DIM_OBJ: // PHP 4 only 
    15951595            case XC_UNSET_DIM: 
    15961596            case XC_UNSET_OBJ: 
     
    28822882    'XC_JMP_SET_VAR' => -1, 
    28832883    'XC_QM_ASSIGN_VAR' => -1, 
    2884     'XC_UNSET_DIM_OBJ' => -1, 
     2884    'XC_UNSET_DIM' => -1, 
     2885    'XC_UNSET_OBJ' => -1, 
     2886    'XC_USER_OPCODE' => -1, 
    28852887) as $k => $v) { 
    28862888    if (!defined($k)) { 
Note: See TracChangeset for help on using the changeset viewer.