Changeset 788 in svn for trunk


Ignore:
Timestamp:
2011-04-25T10:14:07Z (4 years ago)
Author:
Xuefer
Message:

Decompiler: adds blank line between blocks

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/Decompiler.class.php

    r787 r788  
    653653    function decompileBasicBlock(&$EX, $first, $last, $indent) // {{{
    654654    {
     655        if (isset($EX['lastBlock'])) {
     656            echo PHP_EOL;
     657        }
    655658        $this->dasmBasicBlock($EX, $first, $last);
    656659        // $this->dumpRange($EX, $first, $last);
     
    671674    }
    672675    // }}}
     676    function beginComplexBlock(&$EX) // {{{
     677    {
     678        if (isset($EX['lastBlock'])) {
     679            echo PHP_EOL;
     680            $EX['lastBlock'] = null;
     681        }
     682    }
     683    // }}}
     684    function endComplexBlock(&$EX) // {{{
     685    {
     686        $EX['lastBlock'] = 'complex';
     687    }
     688    // }}}
    673689    function decompileComplexBlock(&$EX, $first, $last, $indent) // {{{
    674690    {
     
    681697         && $lastOp['jmpouts'][0] == $first) {
    682698            $this->removeJmpInfo($EX, $last);
     699            $this->beginComplexBlock($EX);
    683700            echo $indent, 'do {', PHP_EOL;
    684701            $this->recognizeAndDecompileClosedBlocks($EX, $first, $last, $indent . INDENT);
    685702            echo $indent, '} while (', str($this->getOpVal($lastOp['op1'], $EX)), ');', PHP_EOL;
     703            $this->endComplexBlock($EX);
    686704            return;
    687705        }
     
    704722            $this->removeJmpInfo($EX, $last);
    705723
     724            $this->beginComplexBlock($EX);
    706725            ob_start();
    707726            $this->recognizeAndDecompileClosedBlocks($EX, $first, $last, $indent . INDENT);
     
    710729            echo $code;
    711730            echo $indent, '}', PHP_EOL;
     731            $this->endComplexBlock($EX);
    712732            return;
    713733        }
     
    719739    {
    720740        $opcodes = &$EX['opcodes'];
    721         $firstComplex = false;
    722741
    723742        $i = $starti = $first;
Note: See TracChangeset for help on using the changeset viewer.