Changeset 762 in svn


Ignore:
Timestamp:
2011-04-17T12:00:32Z (4 years ago)
Author:
Xuefer
Message:

Decompiler: improve dumpop for easier reading

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/Decompiler.class.php

    r761 r762  
    634634            if ($opcodes[$last]['opcode'] == XC_HANDLE_EXCEPTION) {
    635635                $this->usedOps[XC_HANDLE_EXCEPTION] = true;
    636                 unset($opcodes[$last]);
     636                $opcodes[$last]['opcode'] = XC_NOP;
    637637                --$last;
    638638            }
     
    640640                $op1 = $opcodes[$last]['op1'];
    641641                if ($op1['op_type'] == XC_IS_CONST && array_key_exists('constant', $op1) && $op1['constant'] === $defaultReturnValue) {
    642                     unset($opcodes[$last]);
     642                    $opcodes[$last]['opcode'] = XC_NOP;
    643643                    --$last;
    644644                }
     
    913913                continue;
    914914            }
    915             // echo $i; $this->dumpop($op, $EX); //var_dump($op);
     915            // echo $i, ' '; $this->dumpop($op, $EX); //var_dump($op);
    916916
    917917            $resvar = null;
     
    17251725        $op1 = $op['op1'];
    17261726        $op2 = $op['op2'];
    1727         $d = array('opname' => xcache_get_opcode($op['opcode']), 'opcode' => $op['opcode']);
    1728 
    1729         foreach (array('op1' => 'op1', 'op2' => 'op2', 'result' => 'res') as $k => $kk) {
     1727        $d = array('n' => xcache_get_opcode($op['opcode']), 'c' => $op['opcode']);
     1728
     1729        foreach (array('op1' => '1:', 'op2' => '2:', 'result' => '>') as $k => $kk) {
    17301730            switch ($op[$k]['op_type']) {
    17311731            case XC_IS_UNUSED:
    1732                 $d[$kk] = '*UNUSED* ' . $op[$k]['opline_num'];
     1732                $d[$kk] = 'U:' . $op[$k]['opline_num'];
    17331733                break;
    17341734
    17351735            case XC_IS_VAR:
    17361736                $d[$kk] = '$' . $op[$k]['var'];
    1737                 if ($kk != 'res') {
     1737                if ($k != 'result') {
    17381738                    $d[$kk] .= ':' . str($this->getOpVal($op[$k], $EX));
    17391739                }
     
    17421742            case XC_IS_TMP_VAR:
    17431743                $d[$kk] = '#' . $op[$k]['var'];
    1744                 if ($kk != 'res') {
     1744                if ($k != 'result') {
    17451745                    $d[$kk] .= ':' . str($this->getOpVal($op[$k], $EX));
    17461746                }
     
    17521752
    17531753            default:
    1754                 if ($kk == 'res') {
     1754                if ($k == 'result') {
    17551755                    var_dump($op);
    17561756                    exit;
     
    17621762            }
    17631763        }
    1764         $d['ext'] = $op['extended_value'];
    1765 
    1766         var_dump($d);
     1764        $d[';'] = $op['extended_value'];
     1765
     1766        foreach ($d as $k => $v) {
     1767            echo $k, str($v), "\t";
     1768        }
     1769        echo PHP_EOL;
    17671770    }
    17681771    // }}}
Note: See TracChangeset for help on using the changeset viewer.