From 7bb4ae59c3f48890b5f3cdac7785a5a91cba26b8 Mon Sep 17 00:00:00 2001 From: Dmitry Stogov Date: Wed, 5 Jul 2017 21:48:01 +0300 Subject: [PATCH] Fixed final dump "after optimizer" --- ext/opcache/Optimizer/zend_optimizer.c | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/ext/opcache/Optimizer/zend_optimizer.c b/ext/opcache/Optimizer/zend_optimizer.c index 99f1cf6a98..cfe10185be 100644 --- a/ext/opcache/Optimizer/zend_optimizer.c +++ b/ext/opcache/Optimizer/zend_optimizer.c @@ -980,6 +980,10 @@ static void zend_optimize(zend_op_array *op_array, } } + if (ZEND_OPTIMIZER_PASS_7 & ctx->optimization_level) { + return; + } + if (ctx->debug_level & ZEND_DUMP_AFTER_OPTIMIZER) { zend_dump_op_array(op_array, 0, "after optimizer", NULL); } @@ -1228,6 +1232,20 @@ int zend_optimize_script(zend_script *script, zend_long optimization_level, zend } ZEND_HASH_FOREACH_END(); } + if (debug_level & ZEND_DUMP_AFTER_OPTIMIZER) { + ZEND_HASH_FOREACH_PTR(&script->function_table, op_array) { + zend_dump_op_array(op_array, ZEND_DUMP_RT_CONSTANTS, "after optimizer", NULL); + } ZEND_HASH_FOREACH_END(); + + ZEND_HASH_FOREACH_PTR(&script->class_table, ce) { + ZEND_HASH_FOREACH_STR_KEY_PTR(&ce->function_table, name, op_array) { + if (op_array->scope == ce) { + zend_dump_op_array(op_array, ZEND_DUMP_RT_CONSTANTS, "after optimizer", NULL); + } + } ZEND_HASH_FOREACH_END(); + } ZEND_HASH_FOREACH_END(); + } + if (ctx.constants) { zend_hash_destroy(ctx.constants); } -- 2.50.1