Skip to content

Commit 9ae61e3

Browse files
committed
Use ZEND_ACC_CALL_VIA_TRAMPOLINE instead of ZEND_ACC_CALL_VIA_HANDLER. Keep ZEND_ACC_CALL_VIA_HANDLER for compatibility.
1 parent 0a8403a commit 9ae61e3

File tree

8 files changed

+49
-46
lines changed

8 files changed

+49
-46
lines changed

Zend/zend_API.c

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -3079,15 +3079,15 @@ static int zend_is_callable_check_func(int check_flags, zval *callable, zend_fca
30793079
if (strict_class &&
30803080
(!fcc->function_handler->common.scope ||
30813081
!instanceof_function(ce_org, fcc->function_handler->common.scope))) {
3082-
if ((fcc->function_handler->common.fn_flags & ZEND_ACC_CALL_VIA_HANDLER) != 0) {
3082+
if (fcc->function_handler->common.fn_flags & ZEND_ACC_CALL_VIA_TRAMPOLINE) {
30833083
if (fcc->function_handler->type != ZEND_OVERLOADED_FUNCTION) {
30843084
zend_string_release(fcc->function_handler->common.function_name);
30853085
}
30863086
zend_free_trampoline(fcc->function_handler);
30873087
}
30883088
} else {
30893089
retval = 1;
3090-
call_via_handler = (fcc->function_handler->common.fn_flags & ZEND_ACC_CALL_VIA_HANDLER) != 0;
3090+
call_via_handler = (fcc->function_handler->common.fn_flags & ZEND_ACC_CALL_VIA_TRAMPOLINE) != 0;
30913091
}
30923092
}
30933093
}
@@ -3099,7 +3099,7 @@ static int zend_is_callable_check_func(int check_flags, zval *callable, zend_fca
30993099
}
31003100
if (fcc->function_handler) {
31013101
retval = 1;
3102-
call_via_handler = (fcc->function_handler->common.fn_flags & ZEND_ACC_CALL_VIA_HANDLER) != 0;
3102+
call_via_handler = (fcc->function_handler->common.fn_flags & ZEND_ACC_CALL_VIA_TRAMPOLINE) != 0;
31033103
if (call_via_handler && !fcc->object && EG(current_execute_data) && Z_OBJ(EG(current_execute_data)->This) &&
31043104
instanceof_function(Z_OBJCE(EG(current_execute_data)->This), fcc->calling_scope)) {
31053105
fcc->object = Z_OBJ(EG(current_execute_data)->This);
@@ -3241,7 +3241,7 @@ ZEND_API zend_bool zend_is_callable_ex(zval *callable, zend_object *object, uint
32413241
ret = zend_is_callable_check_func(check_flags, callable, fcc, 0, error);
32423242
if (fcc == &fcc_local &&
32433243
fcc->function_handler &&
3244-
((fcc->function_handler->common.fn_flags & ZEND_ACC_CALL_VIA_HANDLER) ||
3244+
((fcc->function_handler->common.fn_flags & ZEND_ACC_CALL_VIA_TRAMPOLINE) ||
32453245
fcc->function_handler->type == ZEND_OVERLOADED_FUNCTION_TEMPORARY ||
32463246
fcc->function_handler->type == ZEND_OVERLOADED_FUNCTION)) {
32473247
if (fcc->function_handler->type != ZEND_OVERLOADED_FUNCTION) {
@@ -3328,7 +3328,7 @@ ZEND_API zend_bool zend_is_callable_ex(zval *callable, zend_object *object, uint
33283328
ret = zend_is_callable_check_func(check_flags, method, fcc, strict_class, error);
33293329
if (fcc == &fcc_local &&
33303330
fcc->function_handler &&
3331-
((fcc->function_handler->common.fn_flags & ZEND_ACC_CALL_VIA_HANDLER) ||
3331+
((fcc->function_handler->common.fn_flags & ZEND_ACC_CALL_VIA_TRAMPOLINE) ||
33323332
fcc->function_handler->type == ZEND_OVERLOADED_FUNCTION_TEMPORARY ||
33333333
fcc->function_handler->type == ZEND_OVERLOADED_FUNCTION)) {
33343334
if (fcc->function_handler->type != ZEND_OVERLOADED_FUNCTION) {
@@ -3403,7 +3403,7 @@ ZEND_API zend_bool zend_make_callable(zval *callable, zend_string **callable_nam
34033403
add_next_index_str(callable, zend_string_copy(fcc.function_handler->common.function_name));
34043404
}
34053405
if (fcc.function_handler &&
3406-
((fcc.function_handler->common.fn_flags & ZEND_ACC_CALL_VIA_HANDLER) ||
3406+
((fcc.function_handler->common.fn_flags & ZEND_ACC_CALL_VIA_TRAMPOLINE) ||
34073407
fcc.function_handler->type == ZEND_OVERLOADED_FUNCTION_TEMPORARY ||
34083408
fcc.function_handler->type == ZEND_OVERLOADED_FUNCTION)) {
34093409
if (fcc.function_handler->type != ZEND_OVERLOADED_FUNCTION) {

Zend/zend_builtin_functions.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1285,7 +1285,7 @@ ZEND_FUNCTION(method_exists)
12851285
&& Z_OBJ_HT_P(klass)->get_method != NULL
12861286
&& (func = Z_OBJ_HT_P(klass)->get_method(&Z_OBJ_P(klass), method_name, NULL)) != NULL
12871287
) {
1288-
if ((func->common.fn_flags & ZEND_ACC_CALL_VIA_HANDLER) != 0) {
1288+
if (func->common.fn_flags & ZEND_ACC_CALL_VIA_TRAMPOLINE) {
12891289
/* Returns true to the fake Closure's __invoke */
12901290
RETVAL_BOOL(func->common.scope == zend_ce_closure
12911291
&& zend_string_equals_literal(method_name, ZEND_INVOKE_FUNC_NAME));
@@ -2506,7 +2506,7 @@ ZEND_API void zend_fetch_debug_backtrace(zval *return_value, int skip_last, int
25062506
if (prev_call &&
25072507
prev_call->func &&
25082508
!ZEND_USER_CODE(prev_call->func->common.type) &&
2509-
!(prev_call->func->common.fn_flags & ZEND_ACC_CALL_VIA_HANDLER)) {
2509+
!(prev_call->func->common.fn_flags & ZEND_ACC_CALL_VIA_TRAMPOLINE)) {
25102510
break;
25112511
}
25122512
if (prev->func && ZEND_USER_CODE(prev->func->common.type)) {

Zend/zend_compile.h

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -226,8 +226,11 @@ typedef struct _zend_try_catch_element {
226226
#define ZEND_ACC_CLOSURE 0x100000
227227
#define ZEND_ACC_GENERATOR 0x800000
228228

229-
/* function flag for internal user call handlers __call, __callstatic */
230-
#define ZEND_ACC_CALL_VIA_HANDLER 0x200000
229+
/* call through user function trampoline. e.g. __call, __callstatic */
230+
#define ZEND_ACC_CALL_VIA_TRAMPOLINE 0x200000
231+
232+
/* call through internal function handler. e.g. Closure::invoke() */
233+
#define ZEND_ACC_CALL_VIA_HANDLER ZEND_ACC_CALL_VIA_TRAMPOLINE
231234

232235
/* disable inline caching */
233236
#define ZEND_ACC_NEVER_CACHE 0x400000

Zend/zend_execute_API.c

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -803,7 +803,7 @@ int zend_call_function(zend_fcall_info *fci, zend_fcall_info_cache *fci_cache) /
803803
Z_ADDREF_P(arg);
804804
} else {
805805
if (Z_ISREF_P(arg) &&
806-
(func->common.fn_flags & ZEND_ACC_CALL_VIA_HANDLER) == 0 ) {
806+
!(func->common.fn_flags & ZEND_ACC_CALL_VIA_TRAMPOLINE)) {
807807
/* don't separate references for __call */
808808
arg = Z_REFVAL_P(arg);
809809
}
@@ -827,7 +827,7 @@ int zend_call_function(zend_fcall_info *fci, zend_fcall_info_cache *fci_cache) /
827827
}
828828

829829
if (func->type == ZEND_USER_FUNCTION) {
830-
int call_via_handler = (func->common.fn_flags & ZEND_ACC_CALL_VIA_HANDLER) != 0;
830+
int call_via_handler = (func->common.fn_flags & ZEND_ACC_CALL_VIA_TRAMPOLINE) != 0;
831831
EG(scope) = func->common.scope;
832832
call->symbol_table = fci->symbol_table;
833833
if (UNEXPECTED(func->op_array.fn_flags & ZEND_ACC_CLOSURE)) {
@@ -845,7 +845,7 @@ int zend_call_function(zend_fcall_info *fci, zend_fcall_info_cache *fci_cache) /
845845
fci_cache->initialized = 0;
846846
}
847847
} else if (func->type == ZEND_INTERNAL_FUNCTION) {
848-
int call_via_handler = (func->common.fn_flags & ZEND_ACC_CALL_VIA_HANDLER) != 0;
848+
int call_via_handler = (func->common.fn_flags & ZEND_ACC_CALL_VIA_TRAMPOLINE) != 0;
849849
ZVAL_NULL(fci->retval);
850850
if (func->common.scope) {
851851
EG(scope) = func->common.scope;

Zend/zend_object_handlers.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1007,7 +1007,7 @@ ZEND_API zend_function *zend_get_call_trampoline_func(zend_class_entry *ce, zend
10071007
}
10081008

10091009
func->type = ZEND_USER_FUNCTION;
1010-
func->fn_flags = ZEND_ACC_CALL_VIA_HANDLER | ZEND_ACC_PUBLIC;
1010+
func->fn_flags = ZEND_ACC_CALL_VIA_TRAMPOLINE | ZEND_ACC_PUBLIC;
10111011
if (is_static) {
10121012
func->fn_flags |= ZEND_ACC_STATIC;
10131013
}

Zend/zend_vm_def.h

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -2890,7 +2890,7 @@ ZEND_VM_HANDLER(112, ZEND_INIT_METHOD_CALL, TMPVAR|UNUSED|CV, CONST|TMPVAR|CV)
28902890
}
28912891
if (OP2_TYPE == IS_CONST &&
28922892
EXPECTED(fbc->type <= ZEND_USER_FUNCTION) &&
2893-
EXPECTED((fbc->common.fn_flags & (ZEND_ACC_CALL_VIA_HANDLER|ZEND_ACC_NEVER_CACHE)) == 0) &&
2893+
EXPECTED(!(fbc->common.fn_flags & (ZEND_ACC_CALL_VIA_TRAMPOLINE|ZEND_ACC_NEVER_CACHE))) &&
28942894
EXPECTED(obj == orig_obj)) {
28952895
CACHE_POLYMORPHIC_PTR(Z_CACHE_SLOT_P(function_name), called_scope, fbc);
28962896
}
@@ -2978,7 +2978,7 @@ ZEND_VM_HANDLER(113, ZEND_INIT_STATIC_METHOD_CALL, CONST|VAR, CONST|TMPVAR|UNUSE
29782978
}
29792979
if (OP2_TYPE == IS_CONST &&
29802980
EXPECTED(fbc->type <= ZEND_USER_FUNCTION) &&
2981-
EXPECTED((fbc->common.fn_flags & (ZEND_ACC_CALL_VIA_HANDLER|ZEND_ACC_NEVER_CACHE)) == 0)) {
2981+
EXPECTED(!(fbc->common.fn_flags & (ZEND_ACC_CALL_VIA_TRAMPOLINE|ZEND_ACC_NEVER_CACHE)))) {
29822982
if (OP1_TYPE == IS_CONST) {
29832983
CACHE_PTR(Z_CACHE_SLOT_P(function_name), fbc);
29842984
} else {
@@ -4433,7 +4433,7 @@ ZEND_VM_C_LABEL(send_array):
44334433
Z_ADDREF_P(arg);
44344434
} else{
44354435
if (Z_ISREF_P(arg) &&
4436-
(EX(call)->func->common.fn_flags & ZEND_ACC_CALL_VIA_HANDLER) == 0) {
4436+
!(EX(call)->func->common.fn_flags & ZEND_ACC_CALL_VIA_TRAMPOLINE)) {
44374437
/* don't separate references for __call */
44384438
arg = Z_REFVAL_P(arg);
44394439
}
@@ -4494,7 +4494,7 @@ ZEND_VM_HANDLER(120, ZEND_SEND_USER, VAR|CV, ANY)
44944494
Z_ADDREF_P(arg);
44954495
} else {
44964496
if (Z_ISREF_P(arg) &&
4497-
(EX(call)->func->common.fn_flags & ZEND_ACC_CALL_VIA_HANDLER) == 0) {
4497+
!(EX(call)->func->common.fn_flags & ZEND_ACC_CALL_VIA_TRAMPOLINE)) {
44984498
/* don't separate references for __call */
44994499
arg = Z_REFVAL_P(arg);
45004500
}
@@ -6937,7 +6937,7 @@ ZEND_VM_HANDLER(149, ZEND_HANDLE_EXCEPTION, ANY, ANY)
69376937
}
69386938
OBJ_RELEASE(Z_OBJ(call->This));
69396939
}
6940-
if (call->func->common.fn_flags & ZEND_ACC_CALL_VIA_HANDLER) {
6940+
if (call->func->common.fn_flags & ZEND_ACC_CALL_VIA_TRAMPOLINE) {
69416941
zend_string_release(call->func->common.function_name);
69426942
zend_free_trampoline(call->func);
69436943
}

Zend/zend_vm_execute.h

Lines changed: 21 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -1168,7 +1168,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_SEND_ARRAY_SPEC_HANDLER(ZEND_O
11681168
Z_ADDREF_P(arg);
11691169
} else{
11701170
if (Z_ISREF_P(arg) &&
1171-
(EX(call)->func->common.fn_flags & ZEND_ACC_CALL_VIA_HANDLER) == 0) {
1171+
!(EX(call)->func->common.fn_flags & ZEND_ACC_CALL_VIA_TRAMPOLINE)) {
11721172
/* don't separate references for __call */
11731173
arg = Z_REFVAL_P(arg);
11741174
}
@@ -1551,7 +1551,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_HANDLE_EXCEPTION_SPEC_HANDLER(
15511551
}
15521552
OBJ_RELEASE(Z_OBJ(call->This));
15531553
}
1554-
if (call->func->common.fn_flags & ZEND_ACC_CALL_VIA_HANDLER) {
1554+
if (call->func->common.fn_flags & ZEND_ACC_CALL_VIA_TRAMPOLINE) {
15551555
zend_string_release(call->func->common.function_name);
15561556
zend_free_trampoline(call->func);
15571557
}
@@ -5194,7 +5194,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_INIT_STATIC_METHOD_CALL_SPEC_C
51945194
}
51955195
if (IS_CONST == IS_CONST &&
51965196
EXPECTED(fbc->type <= ZEND_USER_FUNCTION) &&
5197-
EXPECTED((fbc->common.fn_flags & (ZEND_ACC_CALL_VIA_HANDLER|ZEND_ACC_NEVER_CACHE)) == 0)) {
5197+
EXPECTED(!(fbc->common.fn_flags & (ZEND_ACC_CALL_VIA_TRAMPOLINE|ZEND_ACC_NEVER_CACHE)))) {
51985198
if (IS_CONST == IS_CONST) {
51995199
CACHE_PTR(Z_CACHE_SLOT_P(function_name), fbc);
52005200
} else {
@@ -7143,7 +7143,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_INIT_STATIC_METHOD_CALL_SPEC_C
71437143
}
71447144
if (IS_UNUSED == IS_CONST &&
71457145
EXPECTED(fbc->type <= ZEND_USER_FUNCTION) &&
7146-
EXPECTED((fbc->common.fn_flags & (ZEND_ACC_CALL_VIA_HANDLER|ZEND_ACC_NEVER_CACHE)) == 0)) {
7146+
EXPECTED(!(fbc->common.fn_flags & (ZEND_ACC_CALL_VIA_TRAMPOLINE|ZEND_ACC_NEVER_CACHE)))) {
71477147
if (IS_CONST == IS_CONST) {
71487148
CACHE_PTR(Z_CACHE_SLOT_P(function_name), fbc);
71497149
} else {
@@ -8651,7 +8651,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_INIT_STATIC_METHOD_CALL_SPEC_C
86518651
}
86528652
if (IS_CV == IS_CONST &&
86538653
EXPECTED(fbc->type <= ZEND_USER_FUNCTION) &&
8654-
EXPECTED((fbc->common.fn_flags & (ZEND_ACC_CALL_VIA_HANDLER|ZEND_ACC_NEVER_CACHE)) == 0)) {
8654+
EXPECTED(!(fbc->common.fn_flags & (ZEND_ACC_CALL_VIA_TRAMPOLINE|ZEND_ACC_NEVER_CACHE)))) {
86558655
if (IS_CONST == IS_CONST) {
86568656
CACHE_PTR(Z_CACHE_SLOT_P(function_name), fbc);
86578657
} else {
@@ -10240,7 +10240,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_INIT_STATIC_METHOD_CALL_SPEC_C
1024010240
}
1024110241
if ((IS_TMP_VAR|IS_VAR) == IS_CONST &&
1024210242
EXPECTED(fbc->type <= ZEND_USER_FUNCTION) &&
10243-
EXPECTED((fbc->common.fn_flags & (ZEND_ACC_CALL_VIA_HANDLER|ZEND_ACC_NEVER_CACHE)) == 0)) {
10243+
EXPECTED(!(fbc->common.fn_flags & (ZEND_ACC_CALL_VIA_TRAMPOLINE|ZEND_ACC_NEVER_CACHE)))) {
1024410244
if (IS_CONST == IS_CONST) {
1024510245
CACHE_PTR(Z_CACHE_SLOT_P(function_name), fbc);
1024610246
} else {
@@ -14150,7 +14150,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_SEND_USER_SPEC_VAR_HANDLER(ZEN
1415014150
Z_ADDREF_P(arg);
1415114151
} else {
1415214152
if (Z_ISREF_P(arg) &&
14153-
(EX(call)->func->common.fn_flags & ZEND_ACC_CALL_VIA_HANDLER) == 0) {
14153+
!(EX(call)->func->common.fn_flags & ZEND_ACC_CALL_VIA_TRAMPOLINE)) {
1415414154
/* don't separate references for __call */
1415514155
arg = Z_REFVAL_P(arg);
1415614156
}
@@ -16298,7 +16298,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_INIT_STATIC_METHOD_CALL_SPEC_V
1629816298
}
1629916299
if (IS_CONST == IS_CONST &&
1630016300
EXPECTED(fbc->type <= ZEND_USER_FUNCTION) &&
16301-
EXPECTED((fbc->common.fn_flags & (ZEND_ACC_CALL_VIA_HANDLER|ZEND_ACC_NEVER_CACHE)) == 0)) {
16301+
EXPECTED(!(fbc->common.fn_flags & (ZEND_ACC_CALL_VIA_TRAMPOLINE|ZEND_ACC_NEVER_CACHE)))) {
1630216302
if (IS_VAR == IS_CONST) {
1630316303
CACHE_PTR(Z_CACHE_SLOT_P(function_name), fbc);
1630416304
} else {
@@ -17893,7 +17893,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_INIT_STATIC_METHOD_CALL_SPEC_V
1789317893
}
1789417894
if (IS_UNUSED == IS_CONST &&
1789517895
EXPECTED(fbc->type <= ZEND_USER_FUNCTION) &&
17896-
EXPECTED((fbc->common.fn_flags & (ZEND_ACC_CALL_VIA_HANDLER|ZEND_ACC_NEVER_CACHE)) == 0)) {
17896+
EXPECTED(!(fbc->common.fn_flags & (ZEND_ACC_CALL_VIA_TRAMPOLINE|ZEND_ACC_NEVER_CACHE)))) {
1789717897
if (IS_VAR == IS_CONST) {
1789817898
CACHE_PTR(Z_CACHE_SLOT_P(function_name), fbc);
1789917899
} else {
@@ -19580,7 +19580,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_INIT_STATIC_METHOD_CALL_SPEC_V
1958019580
}
1958119581
if (IS_CV == IS_CONST &&
1958219582
EXPECTED(fbc->type <= ZEND_USER_FUNCTION) &&
19583-
EXPECTED((fbc->common.fn_flags & (ZEND_ACC_CALL_VIA_HANDLER|ZEND_ACC_NEVER_CACHE)) == 0)) {
19583+
EXPECTED(!(fbc->common.fn_flags & (ZEND_ACC_CALL_VIA_TRAMPOLINE|ZEND_ACC_NEVER_CACHE)))) {
1958419584
if (IS_VAR == IS_CONST) {
1958519585
CACHE_PTR(Z_CACHE_SLOT_P(function_name), fbc);
1958619586
} else {
@@ -21222,7 +21222,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_INIT_STATIC_METHOD_CALL_SPEC_V
2122221222
}
2122321223
if ((IS_TMP_VAR|IS_VAR) == IS_CONST &&
2122421224
EXPECTED(fbc->type <= ZEND_USER_FUNCTION) &&
21225-
EXPECTED((fbc->common.fn_flags & (ZEND_ACC_CALL_VIA_HANDLER|ZEND_ACC_NEVER_CACHE)) == 0)) {
21225+
EXPECTED(!(fbc->common.fn_flags & (ZEND_ACC_CALL_VIA_TRAMPOLINE|ZEND_ACC_NEVER_CACHE)))) {
2122621226
if (IS_VAR == IS_CONST) {
2122721227
CACHE_PTR(Z_CACHE_SLOT_P(function_name), fbc);
2122821228
} else {
@@ -22679,7 +22679,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_INIT_METHOD_CALL_SPEC_UNUSED_C
2267922679
}
2268022680
if (IS_CONST == IS_CONST &&
2268122681
EXPECTED(fbc->type <= ZEND_USER_FUNCTION) &&
22682-
EXPECTED((fbc->common.fn_flags & (ZEND_ACC_CALL_VIA_HANDLER|ZEND_ACC_NEVER_CACHE)) == 0) &&
22682+
EXPECTED(!(fbc->common.fn_flags & (ZEND_ACC_CALL_VIA_TRAMPOLINE|ZEND_ACC_NEVER_CACHE))) &&
2268322683
EXPECTED(obj == orig_obj)) {
2268422684
CACHE_POLYMORPHIC_PTR(Z_CACHE_SLOT_P(function_name), called_scope, fbc);
2268522685
}
@@ -25072,7 +25072,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_INIT_METHOD_CALL_SPEC_UNUSED_C
2507225072
}
2507325073
if (IS_CV == IS_CONST &&
2507425074
EXPECTED(fbc->type <= ZEND_USER_FUNCTION) &&
25075-
EXPECTED((fbc->common.fn_flags & (ZEND_ACC_CALL_VIA_HANDLER|ZEND_ACC_NEVER_CACHE)) == 0) &&
25075+
EXPECTED(!(fbc->common.fn_flags & (ZEND_ACC_CALL_VIA_TRAMPOLINE|ZEND_ACC_NEVER_CACHE))) &&
2507625076
EXPECTED(obj == orig_obj)) {
2507725077
CACHE_POLYMORPHIC_PTR(Z_CACHE_SLOT_P(function_name), called_scope, fbc);
2507825078
}
@@ -26581,7 +26581,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_INIT_METHOD_CALL_SPEC_UNUSED_T
2658126581
}
2658226582
if ((IS_TMP_VAR|IS_VAR) == IS_CONST &&
2658326583
EXPECTED(fbc->type <= ZEND_USER_FUNCTION) &&
26584-
EXPECTED((fbc->common.fn_flags & (ZEND_ACC_CALL_VIA_HANDLER|ZEND_ACC_NEVER_CACHE)) == 0) &&
26584+
EXPECTED(!(fbc->common.fn_flags & (ZEND_ACC_CALL_VIA_TRAMPOLINE|ZEND_ACC_NEVER_CACHE))) &&
2658526585
EXPECTED(obj == orig_obj)) {
2658626586
CACHE_POLYMORPHIC_PTR(Z_CACHE_SLOT_P(function_name), called_scope, fbc);
2658726587
}
@@ -27720,7 +27720,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_SEND_USER_SPEC_CV_HANDLER(ZEND
2772027720
Z_ADDREF_P(arg);
2772127721
} else {
2772227722
if (Z_ISREF_P(arg) &&
27723-
(EX(call)->func->common.fn_flags & ZEND_ACC_CALL_VIA_HANDLER) == 0) {
27723+
!(EX(call)->func->common.fn_flags & ZEND_ACC_CALL_VIA_TRAMPOLINE)) {
2772427724
/* don't separate references for __call */
2772527725
arg = Z_REFVAL_P(arg);
2772627726
}
@@ -30663,7 +30663,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_INIT_METHOD_CALL_SPEC_CV_CONST
3066330663
}
3066430664
if (IS_CONST == IS_CONST &&
3066530665
EXPECTED(fbc->type <= ZEND_USER_FUNCTION) &&
30666-
EXPECTED((fbc->common.fn_flags & (ZEND_ACC_CALL_VIA_HANDLER|ZEND_ACC_NEVER_CACHE)) == 0) &&
30666+
EXPECTED(!(fbc->common.fn_flags & (ZEND_ACC_CALL_VIA_TRAMPOLINE|ZEND_ACC_NEVER_CACHE))) &&
3066730667
EXPECTED(obj == orig_obj)) {
3066830668
CACHE_POLYMORPHIC_PTR(Z_CACHE_SLOT_P(function_name), called_scope, fbc);
3066930669
}
@@ -35622,7 +35622,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_INIT_METHOD_CALL_SPEC_CV_CV_HA
3562235622
}
3562335623
if (IS_CV == IS_CONST &&
3562435624
EXPECTED(fbc->type <= ZEND_USER_FUNCTION) &&
35625-
EXPECTED((fbc->common.fn_flags & (ZEND_ACC_CALL_VIA_HANDLER|ZEND_ACC_NEVER_CACHE)) == 0) &&
35625+
EXPECTED(!(fbc->common.fn_flags & (ZEND_ACC_CALL_VIA_TRAMPOLINE|ZEND_ACC_NEVER_CACHE))) &&
3562635626
EXPECTED(obj == orig_obj)) {
3562735627
CACHE_POLYMORPHIC_PTR(Z_CACHE_SLOT_P(function_name), called_scope, fbc);
3562835628
}
@@ -38152,7 +38152,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_INIT_METHOD_CALL_SPEC_CV_TMPVA
3815238152
}
3815338153
if ((IS_TMP_VAR|IS_VAR) == IS_CONST &&
3815438154
EXPECTED(fbc->type <= ZEND_USER_FUNCTION) &&
38155-
EXPECTED((fbc->common.fn_flags & (ZEND_ACC_CALL_VIA_HANDLER|ZEND_ACC_NEVER_CACHE)) == 0) &&
38155+
EXPECTED(!(fbc->common.fn_flags & (ZEND_ACC_CALL_VIA_TRAMPOLINE|ZEND_ACC_NEVER_CACHE))) &&
3815638156
EXPECTED(obj == orig_obj)) {
3815738157
CACHE_POLYMORPHIC_PTR(Z_CACHE_SLOT_P(function_name), called_scope, fbc);
3815838158
}
@@ -40226,7 +40226,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_INIT_METHOD_CALL_SPEC_TMPVAR_C
4022640226
}
4022740227
if (IS_CONST == IS_CONST &&
4022840228
EXPECTED(fbc->type <= ZEND_USER_FUNCTION) &&
40229-
EXPECTED((fbc->common.fn_flags & (ZEND_ACC_CALL_VIA_HANDLER|ZEND_ACC_NEVER_CACHE)) == 0) &&
40229+
EXPECTED(!(fbc->common.fn_flags & (ZEND_ACC_CALL_VIA_TRAMPOLINE|ZEND_ACC_NEVER_CACHE))) &&
4023040230
EXPECTED(obj == orig_obj)) {
4023140231
CACHE_POLYMORPHIC_PTR(Z_CACHE_SLOT_P(function_name), called_scope, fbc);
4023240232
}
@@ -42233,7 +42233,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_INIT_METHOD_CALL_SPEC_TMPVAR_C
4223342233
}
4223442234
if (IS_CV == IS_CONST &&
4223542235
EXPECTED(fbc->type <= ZEND_USER_FUNCTION) &&
42236-
EXPECTED((fbc->common.fn_flags & (ZEND_ACC_CALL_VIA_HANDLER|ZEND_ACC_NEVER_CACHE)) == 0) &&
42236+
EXPECTED(!(fbc->common.fn_flags & (ZEND_ACC_CALL_VIA_TRAMPOLINE|ZEND_ACC_NEVER_CACHE))) &&
4223742237
EXPECTED(obj == orig_obj)) {
4223842238
CACHE_POLYMORPHIC_PTR(Z_CACHE_SLOT_P(function_name), called_scope, fbc);
4223942239
}
@@ -43251,7 +43251,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_INIT_METHOD_CALL_SPEC_TMPVAR_T
4325143251
}
4325243252
if ((IS_TMP_VAR|IS_VAR) == IS_CONST &&
4325343253
EXPECTED(fbc->type <= ZEND_USER_FUNCTION) &&
43254-
EXPECTED((fbc->common.fn_flags & (ZEND_ACC_CALL_VIA_HANDLER|ZEND_ACC_NEVER_CACHE)) == 0) &&
43254+
EXPECTED(!(fbc->common.fn_flags & (ZEND_ACC_CALL_VIA_TRAMPOLINE|ZEND_ACC_NEVER_CACHE))) &&
4325543255
EXPECTED(obj == orig_obj)) {
4325643256
CACHE_POLYMORPHIC_PTR(Z_CACHE_SLOT_P(function_name), called_scope, fbc);
4325743257
}

0 commit comments

Comments
 (0)