Decompiler: gc after dfunction()
This commit is contained in:
parent
f8fcfdfccb
commit
6a6f5e55b7
|
@ -3,6 +3,10 @@
|
|||
define('INDENT', "\t");
|
||||
ini_set('error_reporting', E_ALL);
|
||||
assert_options(ASSERT_ACTIVE, 0);
|
||||
if (function_exists("gc_disable")) {
|
||||
gc_collect_cycles();
|
||||
gc_disable();
|
||||
}
|
||||
|
||||
function color($str, $color = 33)
|
||||
{
|
||||
|
@ -818,6 +822,7 @@ class Decompiler
|
|||
echo PHP_EOL;
|
||||
}
|
||||
echo $indent, str($op['php'], $indent), ";", PHP_EOL;
|
||||
unset($op['php']);
|
||||
$this->EX['lastBlock'] = 'basic';
|
||||
}
|
||||
}
|
||||
|
@ -2830,6 +2835,9 @@ class Decompiler
|
|||
// }}}
|
||||
function dfunction($func, $indent = '', $decorations = array(), $nobody = false) // {{{
|
||||
{
|
||||
static $opcode_count = 0;
|
||||
$opcode_count += count($func['op_array']['opcodes']);
|
||||
|
||||
$this->detectNamespace($func['op_array']['function_name']);
|
||||
|
||||
$returnByRef = '';
|
||||
|
@ -2875,6 +2883,7 @@ class Decompiler
|
|||
echo implode(' ', $decorations), ' ';
|
||||
}
|
||||
$this->EX = &$EX;
|
||||
unset($EX);
|
||||
echo 'function', $functionName ? ' ' . $returnByRef . $functionName : '', '(';
|
||||
$this->dargs();
|
||||
echo ")";
|
||||
|
@ -2898,6 +2907,13 @@ class Decompiler
|
|||
echo PHP_EOL;
|
||||
}
|
||||
}
|
||||
|
||||
if ($opcode_count > 10000) {
|
||||
$opcode_count = 0;
|
||||
if (function_exists("gc_collect_cycles")) {
|
||||
gc_collect_cycles();
|
||||
}
|
||||
}
|
||||
}
|
||||
// }}}
|
||||
function dclass($class, $indent = '') // {{{
|
||||
|
|
Loading…
Reference in New Issue