Ignore:
Timestamp:
2011-04-27T06:52:34+02:00 (4 years ago)
Author:
moo
Message:

Decompile: remove tostr in getOpVal. it is implemented by str() and foldToCode()

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/Decompiler.class.php

    r802 r803  
    609609    } 
    610610    // }}} 
    611     function getOpVal($op, &$EX, $tostr = true, $free = false) // {{{ 
     611    function getOpVal($op, &$EX, $free = false) // {{{ 
    612612    { 
    613613        switch ($op['op_type']) { 
    614614        case XC_IS_CONST: 
    615             return foldToCode(value($op['constant']), $EX); 
     615            return value($op['constant']); 
    616616 
    617617        case XC_IS_VAR: 
     
    619619            $T = &$EX['Ts']; 
    620620            $ret = $T[$op['var']]; 
    621             if ($tostr) { 
    622                 $ret = foldToCode($ret, $EX); 
    623             } 
    624621            if ($free && empty($this->keepTs)) { 
    625622                unset($T[$op['var']]); 
     
    753750 
    754751            $this->recognizeAndDecompileClosedBlocks($EX, array($range[0], $range[0]), $indent . INDENT); 
    755             $op1 = $this->getOpVal($firstOp['op1'], $EX, false, true); 
     752            $op1 = $this->getOpVal($firstOp['op1'], $EX, true); 
    756753 
    757754            $this->recognizeAndDecompileClosedBlocks($EX, array($range[0] + 1, $range[1]), $indent . INDENT); 
    758             $op2 = $this->getOpVal($lastOp['op1'], $EX, false, true); 
     755            $op2 = $this->getOpVal($lastOp['op1'], $EX, true); 
    759756 
    760757            $T[$firstOp['result']['var']] = new Decompiler_Binop($this, $op1, $firstOp['opcode'], $op2); 
     
    775772            $condition = $this->getOpVal($firstOp['op1'], $EX); 
    776773            $this->recognizeAndDecompileClosedBlocks($EX, $trueRange, $indent . INDENT); 
    777             $trueValue = $this->getOpVal($opcodes[$trueRange[1]]['op1'], $EX, false, true); 
     774            $trueValue = $this->getOpVal($opcodes[$trueRange[1]]['op1'], $EX, true); 
    778775            $this->recognizeAndDecompileClosedBlocks($EX, $falseRange, $indent . INDENT); 
    779             $falseValue = $this->getOpVal($opcodes[$falseRange[1]]['op1'], $EX, false, true); 
     776            $falseValue = $this->getOpVal($opcodes[$falseRange[1]]['op1'], $EX, true); 
    780777            $T[$opcodes[$trueRange[1]]['result']['var']] = new Decompiler_TriOp($condition, $trueValue, $falseValue); 
    781778            return false; 
     
    14791476            case XC_UNSET_DIM: 
    14801477            case XC_UNSET_OBJ: 
    1481                 $src = $this->getOpVal($op1, $EX, false); 
     1478                $src = $this->getOpVal($op1, $EX); 
    14821479                if (is_a($src, "Decompiler_ForeachBox")) { 
    14831480                    $src->iskey = $this->getOpVal($op2, $EX); 
     
    14911488                else { 
    14921489                    if (!is_a($src, "Decompiler_ListBox")) { 
    1493                         $op1val = $this->getOpVal($op1, $EX, false); 
     1490                        $op1val = $this->getOpVal($op1, $EX); 
    14941491                        $list = new Decompiler_List(isset($op1val) ? $op1val : '$this'); 
    14951492 
     
    15401537            case XC_ASSIGN: // {{{ 
    15411538                $lvalue = $this->getOpVal($op1, $EX); 
    1542                 $rvalue = $this->getOpVal($op2, $EX, false); 
     1539                $rvalue = $this->getOpVal($op2, $EX); 
    15431540                if (is_a($rvalue, 'Decompiler_ForeachBox')) { 
    15441541                    $type = $rvalue->iskey ? 'fe_key' : 'fe_as'; 
     
    15761573            case XC_ASSIGN_REF: // {{{ 
    15771574                $lvalue = $this->getOpVal($op1, $EX); 
    1578                 $rvalue = $this->getOpVal($op2, $EX, false); 
     1575                $rvalue = $this->getOpVal($op2, $EX); 
    15791576                if (is_a($rvalue, 'Decompiler_Fetch')) { 
    15801577                    $src = str($rvalue->src, $EX); 
     
    17101707                } 
    17111708 
    1712                 $EX['fbc'] = $this->getOpVal($op2, $EX, false); 
     1709                $EX['fbc'] = $this->getOpVal($op2, $EX); 
    17131710                if (($opc == XC_INIT_STATIC_METHOD_CALL || $opc == XC_INIT_METHOD_CALL) && !isset($EX['fbc'])) { 
    17141711                    $EX['fbc'] = '__construct'; 
     
    17411738                break; 
    17421739            case XC_DO_FCALL: 
    1743                 $fname = unquoteName($this->getOpVal($op1, $EX, false), $EX); 
     1740                $fname = unquoteName($this->getOpVal($op1, $EX), $EX); 
    17441741                $args = $this->popargs($EX, $ext); 
    17451742                $resvar = $fname . "($args)"; 
     
    18711868            case XC_INIT_ARRAY: 
    18721869            case XC_ADD_ARRAY_ELEMENT: // {{{ 
    1873                 $rvalue = $this->getOpVal($op1, $EX, false, true); 
     1870                $rvalue = $this->getOpVal($op1, $EX, true); 
    18741871 
    18751872                if ($opc == XC_ADD_ARRAY_ELEMENT) { 
     
    19281925                // }}} 
    19291926            case XC_FE_FETCH: // {{{ 
    1930                 $op['fe_src'] = $this->getOpVal($op1, $EX, false, true); 
     1927                $op['fe_src'] = $this->getOpVal($op1, $EX, true); 
    19311928                $fe = new Decompiler_ForeachBox($op); 
    19321929                $fe->iskey = false; 
     
    21272124                else if (isset($this->binops[$opc])) { // {{{ 
    21282125                    $this->usedOps[$opc] = true; 
    2129                     $op1val = $this->getOpVal($op1, $EX, false); 
    2130                     $op2val = $this->getOpVal($op2, $EX, false); 
     2126                    $op1val = $this->getOpVal($op1, $EX); 
     2127                    $op2val = $this->getOpVal($op2, $EX); 
    21312128                    $rvalue = new Decompiler_Binop($this, $op1val, $opc, $op2val); 
    21322129                    $resvar = $rvalue; 
Note: See TracChangeset for help on using the changeset viewer.