Skip to content

Commit ada9d37

Browse files
committed
Zend/Optimizer/zend_optimizer: add const qualifiers
1 parent 12ab7c3 commit ada9d37

File tree

3 files changed

+54
-54
lines changed

3 files changed

+54
-54
lines changed

Zend/Optimizer/zend_optimizer.c

Lines changed: 45 additions & 45 deletions
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@ struct {
4141
int last;
4242
} zend_optimizer_registered_passes = {{NULL}, 0};
4343

44-
void zend_optimizer_collect_constant(zend_optimizer_ctx *ctx, zval *name, zval* value)
44+
void zend_optimizer_collect_constant(zend_optimizer_ctx *ctx, const zval *name, zval* value)
4545
{
4646
if (!ctx->constants) {
4747
ctx->constants = zend_arena_alloc(&ctx->arena, sizeof(HashTable));
@@ -103,11 +103,11 @@ zend_result zend_optimizer_eval_strlen(zval *result, const zval *op1) /* {{{ */
103103
/* }}} */
104104

105105
zend_result zend_optimizer_eval_special_func_call(
106-
zval *result, zend_string *name, zend_string *arg) {
106+
zval *result, const zend_string *name, zend_string *arg) {
107107
if (zend_string_equals_literal(name, "function_exists") ||
108108
zend_string_equals_literal(name, "is_callable")) {
109109
zend_string *lc_name = zend_string_tolower(arg);
110-
zend_internal_function *func = zend_hash_find_ptr(EG(function_table), lc_name);
110+
const zend_internal_function *func = zend_hash_find_ptr(EG(function_table), lc_name);
111111
zend_string_release_ex(lc_name, 0);
112112

113113
if (func && func->type == ZEND_INTERNAL_FUNCTION
@@ -180,7 +180,7 @@ zend_result zend_optimizer_eval_special_func_call(
180180
return FAILURE;
181181
}
182182

183-
bool zend_optimizer_get_collected_constant(HashTable *constants, zval *name, zval* value)
183+
bool zend_optimizer_get_collected_constant(const HashTable *constants, const zval *name, zval* value)
184184
{
185185
zval *val;
186186

@@ -191,7 +191,7 @@ bool zend_optimizer_get_collected_constant(HashTable *constants, zval *name, zva
191191
return false;
192192
}
193193

194-
void zend_optimizer_convert_to_free_op1(zend_op_array *op_array, zend_op *opline)
194+
void zend_optimizer_convert_to_free_op1(const zend_op_array *op_array, zend_op *opline)
195195
{
196196
if (opline->op1_type == IS_CV) {
197197
opline->opcode = ZEND_CHECK_VAR;
@@ -603,7 +603,7 @@ bool zend_optimizer_replace_by_const(zend_op_array *op_array,
603603
uint32_t var,
604604
zval *val)
605605
{
606-
zend_op *end = op_array->opcodes + op_array->last;
606+
const zend_op *end = op_array->opcodes + op_array->last;
607607

608608
while (opline < end) {
609609
if (opline->op1_type == type &&
@@ -622,7 +622,7 @@ bool zend_optimizer_replace_by_const(zend_op_array *op_array,
622622
case ZEND_MATCH:
623623
case ZEND_MATCH_ERROR:
624624
case ZEND_JMP_NULL: {
625-
zend_op *end = op_array->opcodes + op_array->last;
625+
const zend_op *end = op_array->opcodes + op_array->last;
626626
while (opline < end) {
627627
if (opline->op1_type == type && opline->op1.var == var) {
628628
/* If this opcode doesn't keep the operand alive, we're done. Check
@@ -653,7 +653,7 @@ bool zend_optimizer_replace_by_const(zend_op_array *op_array,
653653
return true;
654654
}
655655
case ZEND_VERIFY_RETURN_TYPE: {
656-
zend_arg_info *ret_info = op_array->arg_info - 1;
656+
const zend_arg_info *ret_info = op_array->arg_info - 1;
657657
if (!ZEND_TYPE_CONTAINS_CODE(ret_info->type, Z_TYPE_P(val))
658658
|| (op_array->fn_flags & ZEND_ACC_RETURN_REFERENCE)) {
659659
return false;
@@ -685,7 +685,7 @@ bool zend_optimizer_replace_by_const(zend_op_array *op_array,
685685
}
686686

687687
/* Update jump offsets after a jump was migrated to another opline */
688-
void zend_optimizer_migrate_jump(zend_op_array *op_array, zend_op *new_opline, zend_op *opline) {
688+
void zend_optimizer_migrate_jump(const zend_op_array *op_array, zend_op *new_opline, zend_op *opline) {
689689
switch (new_opline->opcode) {
690690
case ZEND_JMP:
691691
case ZEND_FAST_CALL:
@@ -718,7 +718,7 @@ void zend_optimizer_migrate_jump(zend_op_array *op_array, zend_op *new_opline, z
718718
case ZEND_SWITCH_STRING:
719719
case ZEND_MATCH:
720720
{
721-
HashTable *jumptable = Z_ARRVAL(ZEND_OP2_LITERAL(opline));
721+
const HashTable *jumptable = Z_ARRVAL(ZEND_OP2_LITERAL(opline));
722722
zval *zv;
723723
ZEND_HASH_FOREACH_VAL(jumptable, zv) {
724724
Z_LVAL_P(zv) = ZEND_OPLINE_NUM_TO_OFFSET(op_array, new_opline, ZEND_OFFSET_TO_OPLINE_NUM(op_array, opline, Z_LVAL_P(zv)));
@@ -730,7 +730,7 @@ void zend_optimizer_migrate_jump(zend_op_array *op_array, zend_op *new_opline, z
730730
}
731731

732732
/* Shift jump offsets based on shiftlist */
733-
void zend_optimizer_shift_jump(zend_op_array *op_array, zend_op *opline, uint32_t *shiftlist) {
733+
void zend_optimizer_shift_jump(const zend_op_array *op_array, zend_op *opline, const uint32_t *shiftlist) {
734734
switch (opline->opcode) {
735735
case ZEND_JMP:
736736
case ZEND_FAST_CALL:
@@ -763,7 +763,7 @@ void zend_optimizer_shift_jump(zend_op_array *op_array, zend_op *opline, uint32_
763763
case ZEND_SWITCH_STRING:
764764
case ZEND_MATCH:
765765
{
766-
HashTable *jumptable = Z_ARRVAL(ZEND_OP2_LITERAL(opline));
766+
const HashTable *jumptable = Z_ARRVAL(ZEND_OP2_LITERAL(opline));
767767
zval *zv;
768768
ZEND_HASH_FOREACH_VAL(jumptable, zv) {
769769
Z_LVAL_P(zv) = ZEND_OPLINE_NUM_TO_OFFSET(op_array, opline, ZEND_OFFSET_TO_OPLINE_NUM(op_array, opline, Z_LVAL_P(zv)) - shiftlist[ZEND_OFFSET_TO_OPLINE_NUM(op_array, opline, Z_LVAL_P(zv))]);
@@ -774,12 +774,12 @@ void zend_optimizer_shift_jump(zend_op_array *op_array, zend_op *opline, uint32_
774774
}
775775
}
776776

777-
static bool zend_optimizer_ignore_class(zval *ce_zv, zend_string *filename)
777+
static bool zend_optimizer_ignore_class(zval *ce_zv, const zend_string *filename)
778778
{
779-
zend_class_entry *ce = Z_PTR_P(ce_zv);
779+
const zend_class_entry *ce = Z_PTR_P(ce_zv);
780780

781781
if (ce->ce_flags & ZEND_ACC_PRELOADED) {
782-
Bucket *ce_bucket = (Bucket*)((uintptr_t)ce_zv - XtOffsetOf(Bucket, val));
782+
const Bucket *ce_bucket = (const Bucket*)((uintptr_t)ce_zv - XtOffsetOf(Bucket, val));
783783
size_t offset = ce_bucket - EG(class_table)->arData;
784784
if (offset < EG(persistent_classes_count)) {
785785
return false;
@@ -789,15 +789,15 @@ static bool zend_optimizer_ignore_class(zval *ce_zv, zend_string *filename)
789789
&& (!ce->info.user.filename || ce->info.user.filename != filename);
790790
}
791791

792-
static bool zend_optimizer_ignore_function(zval *fbc_zv, zend_string *filename)
792+
static bool zend_optimizer_ignore_function(zval *fbc_zv, const zend_string *filename)
793793
{
794-
zend_function *fbc = Z_PTR_P(fbc_zv);
794+
const zend_function *fbc = Z_PTR_P(fbc_zv);
795795

796796
if (fbc->type == ZEND_INTERNAL_FUNCTION) {
797797
return false;
798798
} else if (fbc->type == ZEND_USER_FUNCTION) {
799799
if (fbc->op_array.fn_flags & ZEND_ACC_PRELOADED) {
800-
Bucket *fbc_bucket = (Bucket*)((uintptr_t)fbc_zv - XtOffsetOf(Bucket, val));
800+
const Bucket *fbc_bucket = (const Bucket*)((uintptr_t)fbc_zv - XtOffsetOf(Bucket, val));
801801
size_t offset = fbc_bucket - EG(function_table)->arData;
802802
if (offset < EG(persistent_functions_count)) {
803803
return false;
@@ -832,7 +832,7 @@ zend_class_entry *zend_optimizer_get_class_entry(
832832
zend_class_entry *zend_optimizer_get_class_entry_from_op1(
833833
const zend_script *script, const zend_op_array *op_array, const zend_op *opline) {
834834
if (opline->op1_type == IS_CONST) {
835-
zval *op1 = CRT_CONSTANT(opline->op1);
835+
const zval *op1 = CRT_CONSTANT(opline->op1);
836836
if (Z_TYPE_P(op1) == IS_STRING) {
837837
return zend_optimizer_get_class_entry(script, op_array, Z_STR_P(op1 + 1));
838838
}
@@ -855,7 +855,7 @@ const zend_class_constant *zend_fetch_class_const_info(
855855
return NULL;
856856
}
857857
if (opline->op1_type == IS_CONST) {
858-
zval *op1 = CRT_CONSTANT(opline->op1);
858+
const zval *op1 = CRT_CONSTANT(opline->op1);
859859
if (Z_TYPE_P(op1) == IS_STRING) {
860860
if (script) {
861861
ce = zend_optimizer_get_class_entry(script, op_array, Z_STR_P(op1 + 1));
@@ -899,7 +899,7 @@ const zend_class_constant *zend_fetch_class_const_info(
899899
}
900900

901901
zend_function *zend_optimizer_get_called_func(
902-
zend_script *script, zend_op_array *op_array, zend_op *opline, bool *is_prototype)
902+
const zend_script *script, const zend_op_array *op_array, zend_op *opline, bool *is_prototype)
903903
{
904904
*is_prototype = false;
905905
switch (opline->opcode) {
@@ -920,7 +920,7 @@ zend_function *zend_optimizer_get_called_func(
920920
case ZEND_INIT_FCALL_BY_NAME:
921921
case ZEND_INIT_NS_FCALL_BY_NAME:
922922
if (opline->op2_type == IS_CONST && Z_TYPE_P(CRT_CONSTANT(opline->op2)) == IS_STRING) {
923-
zval *function_name = CRT_CONSTANT(opline->op2) + 1;
923+
const zval *function_name = CRT_CONSTANT(opline->op2) + 1;
924924
zend_function *func;
925925
zval *func_zv;
926926
if (script && (func = zend_hash_find_ptr(&script->function_table, Z_STR_P(function_name)))) {
@@ -934,7 +934,7 @@ zend_function *zend_optimizer_get_called_func(
934934
break;
935935
case ZEND_INIT_STATIC_METHOD_CALL:
936936
if (opline->op2_type == IS_CONST && Z_TYPE_P(CRT_CONSTANT(opline->op2)) == IS_STRING) {
937-
zend_class_entry *ce = zend_optimizer_get_class_entry_from_op1(
937+
const zend_class_entry *ce = zend_optimizer_get_class_entry_from_op1(
938938
script, op_array, opline);
939939
if (ce) {
940940
zend_string *func_name = Z_STR_P(CRT_CONSTANT(opline->op2) + 1);
@@ -978,13 +978,13 @@ zend_function *zend_optimizer_get_called_func(
978978
}
979979
break;
980980
case ZEND_INIT_PARENT_PROPERTY_HOOK_CALL: {
981-
zend_class_entry *scope = op_array->scope;
981+
const zend_class_entry *scope = op_array->scope;
982982
ZEND_ASSERT(scope != NULL);
983983
if ((scope->ce_flags & ZEND_ACC_LINKED) && scope->parent) {
984-
zend_class_entry *parent_scope = scope->parent;
984+
const zend_class_entry *parent_scope = scope->parent;
985985
zend_string *prop_name = Z_STR_P(CRT_CONSTANT(opline->op1));
986986
zend_property_hook_kind hook_kind = opline->op2.num;
987-
zend_property_info *prop_info = zend_get_property_info(parent_scope, prop_name, /* silent */ true);
987+
const zend_property_info *prop_info = zend_get_property_info(parent_scope, prop_name, /* silent */ true);
988988

989989
if (prop_info
990990
&& prop_info != ZEND_WRONG_PROPERTY_INFO
@@ -1001,7 +1001,7 @@ zend_function *zend_optimizer_get_called_func(
10011001
}
10021002
case ZEND_NEW:
10031003
{
1004-
zend_class_entry *ce = zend_optimizer_get_class_entry_from_op1(
1004+
const zend_class_entry *ce = zend_optimizer_get_class_entry_from_op1(
10051005
script, op_array, opline);
10061006
if (ce && ce->type == ZEND_USER_CLASS) {
10071007
return ce->constructor;
@@ -1012,7 +1012,7 @@ zend_function *zend_optimizer_get_called_func(
10121012
return NULL;
10131013
}
10141014

1015-
uint32_t zend_optimizer_classify_function(zend_string *name, uint32_t num_args) {
1015+
uint32_t zend_optimizer_classify_function(const zend_string *name, uint32_t num_args) {
10161016
if (zend_string_equals_literal(name, "extract")) {
10171017
return ZEND_FUNC_INDIRECT_VAR_ACCESS;
10181018
} else if (zend_string_equals_literal(name, "compact")) {
@@ -1164,12 +1164,12 @@ static void zend_optimize(zend_op_array *op_array,
11641164

11651165
static void zend_revert_pass_two(zend_op_array *op_array)
11661166
{
1167-
zend_op *opline, *end;
1167+
zend_op *opline;
11681168

11691169
ZEND_ASSERT((op_array->fn_flags & ZEND_ACC_DONE_PASS_TWO) != 0);
11701170

11711171
opline = op_array->opcodes;
1172-
end = opline + op_array->last;
1172+
const zend_op *end = opline + op_array->last;
11731173
while (opline < end) {
11741174
if (opline->op1_type == IS_CONST) {
11751175
ZEND_PASS_TWO_UNDO_CONSTANT(op_array, opline, opline->op1);
@@ -1302,7 +1302,7 @@ static void zend_redo_pass_two(zend_op_array *op_array)
13021302
op_array->fn_flags |= ZEND_ACC_DONE_PASS_TWO;
13031303
}
13041304

1305-
static void zend_redo_pass_two_ex(zend_op_array *op_array, zend_ssa *ssa)
1305+
static void zend_redo_pass_two_ex(zend_op_array *op_array, const zend_ssa *ssa)
13061306
{
13071307
zend_op *opline, *end;
13081308
#if ZEND_USE_ABS_JMP_ADDR && !ZEND_USE_ABS_CONST_ADDR
@@ -1331,7 +1331,7 @@ static void zend_redo_pass_two_ex(zend_op_array *op_array, zend_ssa *ssa)
13311331
opline = op_array->opcodes;
13321332
end = opline + op_array->last;
13331333
while (opline < end) {
1334-
zend_ssa_op *ssa_op = &ssa->ops[opline - op_array->opcodes];
1334+
const zend_ssa_op *ssa_op = &ssa->ops[opline - op_array->opcodes];
13351335
uint32_t op1_info = opline->op1_type == IS_UNUSED ? 0 : (OP1_INFO() & (MAY_BE_UNDEF|MAY_BE_ANY|MAY_BE_REF|MAY_BE_ARRAY_OF_ANY|MAY_BE_ARRAY_KEY_ANY));
13361336
uint32_t op2_info = opline->op1_type == IS_UNUSED ? 0 : (OP2_INFO() & (MAY_BE_UNDEF|MAY_BE_ANY|MAY_BE_REF|MAY_BE_ARRAY_OF_ANY|MAY_BE_ARRAY_KEY_ANY));
13371337
uint32_t res_info =
@@ -1461,13 +1461,13 @@ static void zend_optimize_op_array(zend_op_array *op_array,
14611461
}
14621462
}
14631463

1464-
static void zend_adjust_fcall_stack_size(zend_op_array *op_array, zend_optimizer_ctx *ctx)
1464+
static void zend_adjust_fcall_stack_size(const zend_op_array *op_array, const zend_optimizer_ctx *ctx)
14651465
{
14661466
zend_function *func;
1467-
zend_op *opline, *end;
1467+
zend_op *opline;
14681468

14691469
opline = op_array->opcodes;
1470-
end = opline + op_array->last;
1470+
const zend_op* end = opline + op_array->last;
14711471
while (opline < end) {
14721472
if (opline->opcode == ZEND_INIT_FCALL) {
14731473
func = zend_hash_find_ptr(
@@ -1481,12 +1481,12 @@ static void zend_adjust_fcall_stack_size(zend_op_array *op_array, zend_optimizer
14811481
}
14821482
}
14831483

1484-
static void zend_adjust_fcall_stack_size_graph(zend_op_array *op_array)
1484+
static void zend_adjust_fcall_stack_size_graph(const zend_op_array *op_array)
14851485
{
1486-
zend_func_info *func_info = ZEND_FUNC_INFO(op_array);
1486+
const zend_func_info *func_info = ZEND_FUNC_INFO(op_array);
14871487

14881488
if (func_info) {
1489-
zend_call_info *call_info =func_info->callee_info;
1489+
const zend_call_info *call_info =func_info->callee_info;
14901490

14911491
while (call_info) {
14921492
zend_op *opline = call_info->caller_init_opline;
@@ -1500,9 +1500,9 @@ static void zend_adjust_fcall_stack_size_graph(zend_op_array *op_array)
15001500
}
15011501
}
15021502

1503-
static bool needs_live_range(zend_op_array *op_array, zend_op *def_opline) {
1504-
zend_func_info *func_info = ZEND_FUNC_INFO(op_array);
1505-
zend_ssa_op *ssa_op = &func_info->ssa.ops[def_opline - op_array->opcodes];
1503+
static bool needs_live_range(const zend_op_array *op_array, const zend_op *def_opline) {
1504+
const zend_func_info *func_info = ZEND_FUNC_INFO(op_array);
1505+
const zend_ssa_op *ssa_op = &func_info->ssa.ops[def_opline - op_array->opcodes];
15061506
int ssa_var = ssa_op->result_def;
15071507
if (ssa_var < 0) {
15081508
/* Be conservative. */
@@ -1543,7 +1543,7 @@ void zend_foreach_op_array(zend_script *script, zend_op_array_func_t func, void
15431543
if (Z_TYPE_P(zv) == IS_ALIAS_PTR) {
15441544
continue;
15451545
}
1546-
zend_class_entry *ce = Z_CE_P(zv);
1546+
const zend_class_entry *ce = Z_CE_P(zv);
15471547
ZEND_HASH_MAP_FOREACH_PTR(&ce->function_table, op_array) {
15481548
if (op_array->scope == ce
15491549
&& op_array->type == ZEND_USER_FUNCTION
@@ -1558,7 +1558,7 @@ void zend_foreach_op_array(zend_script *script, zend_op_array_func_t func, void
15581558
zend_function **hooks = property->hooks;
15591559
if (property->ce == ce && property->hooks) {
15601560
for (uint32_t i = 0; i < ZEND_PROPERTY_HOOK_COUNT; i++) {
1561-
zend_function *hook = hooks[i];
1561+
const zend_function *hook = hooks[i];
15621562
if (hook && hook->common.scope == ce && !(hooks[i]->op_array.fn_flags & ZEND_ACC_TRAIT_CLONE)) {
15631563
zend_foreach_op_array_helper(&hooks[i]->op_array, func, context);
15641564
}
@@ -1718,10 +1718,10 @@ ZEND_API void zend_optimize_script(zend_script *script, zend_long optimization_l
17181718
if (Z_TYPE_P(zv) == IS_ALIAS_PTR) {
17191719
continue;
17201720
}
1721-
zend_class_entry *ce = Z_CE_P(zv);
1721+
const zend_class_entry *ce = Z_CE_P(zv);
17221722
ZEND_HASH_MAP_FOREACH_STR_KEY_PTR(&ce->function_table, name, op_array) {
17231723
if (op_array->scope != ce && op_array->type == ZEND_USER_FUNCTION) {
1724-
zend_op_array *orig_op_array =
1724+
const zend_op_array *orig_op_array =
17251725
zend_hash_find_ptr(&op_array->scope->function_table, name);
17261726

17271727
ZEND_ASSERT(orig_op_array != NULL);

Zend/Optimizer/zend_optimizer_internal.h

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -78,17 +78,17 @@ static inline bool zend_optimizer_is_loop_var_free(const zend_op *opline) {
7878
|| (opline->opcode == ZEND_FREE && opline->extended_value == ZEND_FREE_SWITCH);
7979
}
8080

81-
void zend_optimizer_convert_to_free_op1(zend_op_array *op_array, zend_op *opline);
81+
void zend_optimizer_convert_to_free_op1(const zend_op_array *op_array, zend_op *opline);
8282
uint32_t zend_optimizer_add_literal(zend_op_array *op_array, const zval *zv);
8383
bool zend_optimizer_get_persistent_constant(zend_string *name, zval *result, int copy);
84-
void zend_optimizer_collect_constant(zend_optimizer_ctx *ctx, zval *name, zval* value);
85-
bool zend_optimizer_get_collected_constant(HashTable *constants, zval *name, zval* value);
84+
void zend_optimizer_collect_constant(zend_optimizer_ctx *ctx, const zval *name, zval* value);
85+
bool zend_optimizer_get_collected_constant(const HashTable *constants, const zval *name, zval* value);
8686
zend_result zend_optimizer_eval_binary_op(zval *result, uint8_t opcode, zval *op1, zval *op2);
8787
zend_result zend_optimizer_eval_unary_op(zval *result, uint8_t opcode, zval *op1);
8888
zend_result zend_optimizer_eval_cast(zval *result, uint32_t type, zval *op1);
8989
zend_result zend_optimizer_eval_strlen(zval *result, const zval *op1);
9090
zend_result zend_optimizer_eval_special_func_call(
91-
zval *result, zend_string *name, zend_string *arg);
91+
zval *result, const zend_string *name, zend_string *arg);
9292
bool zend_optimizer_update_op1_const(zend_op_array *op_array,
9393
zend_op *opline,
9494
zval *val);
@@ -120,10 +120,10 @@ void zend_optimizer_nop_removal(zend_op_array *op_array, zend_optimizer_ctx *ctx
120120
void zend_optimizer_compact_literals(zend_op_array *op_array, zend_optimizer_ctx *ctx);
121121
void zend_optimizer_compact_vars(zend_op_array *op_array);
122122
zend_function *zend_optimizer_get_called_func(
123-
zend_script *script, zend_op_array *op_array, zend_op *opline, bool *is_prototype);
124-
uint32_t zend_optimizer_classify_function(zend_string *name, uint32_t num_args);
125-
void zend_optimizer_migrate_jump(zend_op_array *op_array, zend_op *new_opline, zend_op *opline);
126-
void zend_optimizer_shift_jump(zend_op_array *op_array, zend_op *opline, uint32_t *shiftlist);
123+
const zend_script *script, const zend_op_array *op_array, zend_op *opline, bool *is_prototype);
124+
uint32_t zend_optimizer_classify_function(const zend_string *name, uint32_t num_args);
125+
void zend_optimizer_migrate_jump(const zend_op_array *op_array, zend_op *new_opline, zend_op *opline);
126+
void zend_optimizer_shift_jump(const zend_op_array *op_array, zend_op *opline, const uint32_t *shiftlist);
127127
uint32_t sccp_optimize_op_array(zend_optimizer_ctx *ctx, zend_op_array *op_array, zend_ssa *ssa, zend_call_info **call_map);
128128
int dce_optimize_op_array(zend_op_array *op_array, zend_optimizer_ctx *optimizer_ctx, zend_ssa *ssa, bool reorder_dtor_effects);
129129
zend_result zend_ssa_escape_analysis(const zend_script *script, zend_op_array *op_array, zend_ssa *ssa);

Zend/zend_compile.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -996,7 +996,7 @@ static zend_always_inline const char *zend_get_unmangled_property_name(const zen
996996
#define ZEND_FUNCTION_DTOR zend_function_dtor
997997
#define ZEND_CLASS_DTOR destroy_zend_class
998998

999-
typedef bool (*zend_needs_live_range_cb)(zend_op_array *op_array, zend_op *opline);
999+
typedef bool (*zend_needs_live_range_cb)(const zend_op_array *op_array, const zend_op *opline);
10001000
ZEND_API void zend_recalc_live_ranges(
10011001
zend_op_array *op_array, zend_needs_live_range_cb needs_live_range);
10021002

0 commit comments

Comments
 (0)