Skip to content

Commit 1133ee1

Browse files
committed
Check for USER_FUNCTION
1 parent 26ab6ed commit 1133ee1

File tree

2 files changed

+12
-4
lines changed

2 files changed

+12
-4
lines changed

ext/opcache/Optimizer/zend_call_graph.c

+3-1
Original file line numberDiff line numberDiff line change
@@ -71,7 +71,9 @@ static int zend_foreach_op_array(zend_call_graph *call_graph, zend_script *scrip
7171
continue;
7272
}
7373
ZEND_HASH_FOREACH_PTR(&ce->function_table, op_array) {
74-
if (op_array->scope == ce && !(op_array->fn_flags & ZEND_ACC_TRAIT_CLONE)) {
74+
if (op_array->scope == ce
75+
&& op_array->type == ZEND_USER_FUNCTION
76+
&& !(op_array->fn_flags & ZEND_ACC_TRAIT_CLONE)) {
7577
if (func(call_graph, op_array) != SUCCESS) {
7678
return FAILURE;
7779
}

ext/opcache/Optimizer/zend_optimizer.c

+9-3
Original file line numberDiff line numberDiff line change
@@ -1417,7 +1417,9 @@ int zend_optimize_script(zend_script *script, zend_long optimization_level, zend
14171417
continue;
14181418
}
14191419
ZEND_HASH_FOREACH_STR_KEY_PTR(&ce->function_table, name, op_array) {
1420-
if (op_array->scope == ce && !(op_array->fn_flags & ZEND_ACC_TRAIT_CLONE)) {
1420+
if (op_array->scope == ce
1421+
&& op_array->type == ZEND_USER_FUNCTION
1422+
&& !(op_array->fn_flags & ZEND_ACC_TRAIT_CLONE)) {
14211423
zend_optimize_op_array(op_array, &ctx);
14221424
}
14231425
} ZEND_HASH_FOREACH_END();
@@ -1531,7 +1533,9 @@ int zend_optimize_script(zend_script *script, zend_long optimization_level, zend
15311533
continue;
15321534
}
15331535
ZEND_HASH_FOREACH_STR_KEY_PTR(&ce->function_table, name, op_array) {
1534-
if (op_array->scope == ce && !(op_array->fn_flags & ZEND_ACC_TRAIT_CLONE)) {
1536+
if (op_array->scope == ce
1537+
&& op_array->type == ZEND_USER_FUNCTION
1538+
&& !(op_array->fn_flags & ZEND_ACC_TRAIT_CLONE)) {
15351539
zend_adjust_fcall_stack_size(op_array, &ctx);
15361540
}
15371541
} ZEND_HASH_FOREACH_END();
@@ -1574,7 +1578,9 @@ int zend_optimize_script(zend_script *script, zend_long optimization_level, zend
15741578

15751579
ZEND_HASH_FOREACH_PTR(&script->class_table, ce) {
15761580
ZEND_HASH_FOREACH_STR_KEY_PTR(&ce->function_table, name, op_array) {
1577-
if (op_array->scope == ce && !(op_array->fn_flags & ZEND_ACC_TRAIT_CLONE)) {
1581+
if (op_array->scope == ce
1582+
&& op_array->type == ZEND_USER_FUNCTION
1583+
&& !(op_array->fn_flags & ZEND_ACC_TRAIT_CLONE)) {
15781584
zend_dump_op_array(op_array,
15791585
ZEND_DUMP_RT_CONSTANTS | ZEND_DUMP_LIVE_RANGES, "after optimizer", NULL);
15801586
}

0 commit comments

Comments
 (0)