Changeset 722 in svn for trunk/Decompiler.class.php


Ignore:
Timestamp:
2011-04-09T11:41:07Z (4 years ago)
Author:
Xuefer
Message:

method call decompile fix

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/Decompiler.class.php

    r720 r722  
    801801                        case ZEND_FETCH_CLASS_PARENT:
    802802                            $class = 'parent';
    803                         }
     803                            break;
     804                        case ZEND_FETCH_CLASS_STATIC:
     805                            $class = 'static';
     806                            break;
     807                        }
     808                        $istmpres = true;
    804809                    }
    805810                    else {
     
    10631068                    }
    10641069                    array_push($EX['arg_types_stack'], array($EX['fbc'], $EX['object'], $EX['called_scope']));
    1065                     if ($opc == XC_INIT_STATIC_METHOD_CALL) {
    1066                         $EX['object'] = null;
    1067                         $EX['called_scope'] = $op1['var'];
    1068                     }
    1069                     else if ($opc == XC_INIT_METHOD_CALL || $op1['op_type'] != XC_IS_UNUSED) {
     1070                    if ($opc == XC_INIT_STATIC_METHOD_CALL || $opc == XC_INIT_METHOD_CALL || $op1['op_type'] != XC_IS_UNUSED) {
    10701071                        $obj = $this->getOpVal($op1, $EX);
    10711072                        if (!isset($obj)) {
    10721073                            $obj = '$this';
    10731074                        }
    1074                         // looks like PHP4 only
    1075                         if (isset($op1['constant'])) {
     1075                        if ($opc == XC_INIT_STATIC_METHOD_CALL || /* PHP4 */ isset($op1['constant'])) {
    10761076                            $EX['object'] = null;
    10771077                            $EX['called_scope'] = $this->unquoteName($obj);
     
    18651865define('ZEND_FETCH_CLASS_AUTO',       5);
    18661866define('ZEND_FETCH_CLASS_INTERFACE',  6);
     1867define('ZEND_FETCH_CLASS_STATIC',     7);
    18671868
    18681869define('ZEND_EVAL',               (1<<0));
Note: See TracChangeset for help on using the changeset viewer.