|
|
|
@ -1908,7 +1908,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_CALL_TRAMPOLINE_SPEC_HANDLER(Z |
|
|
|
fbc = call->func; |
|
|
|
|
|
|
|
if (EXPECTED(fbc->type == ZEND_USER_FUNCTION)) { |
|
|
|
if (UNEXPECTED(!fbc->op_array.run_time_cache)) { |
|
|
|
if (UNEXPECTED(!RUN_TIME_CACHE(&fbc->op_array))) { |
|
|
|
init_func_run_time_cache(&fbc->op_array); |
|
|
|
} |
|
|
|
execute_data = call; |
|
|
|
@ -2026,8 +2026,8 @@ static ZEND_VM_HOT ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_INIT_FCALL_BY_NAME |
|
|
|
ZEND_VM_TAIL_CALL(zend_undefined_function_helper_SPEC(function_name ZEND_OPCODE_HANDLER_ARGS_PASSTHRU_CC)); |
|
|
|
} |
|
|
|
fbc = Z_FUNC_P(func); |
|
|
|
if (EXPECTED(fbc->type == ZEND_USER_FUNCTION) && UNEXPECTED(!fbc->op_array.run_time_cache)) { |
|
|
|
fbc = init_func_run_time_cache_ex(func); |
|
|
|
if (EXPECTED(fbc->type == ZEND_USER_FUNCTION) && UNEXPECTED(!RUN_TIME_CACHE(&fbc->op_array))) { |
|
|
|
init_func_run_time_cache(&fbc->op_array); |
|
|
|
} |
|
|
|
CACHE_PTR(opline->result.num, fbc); |
|
|
|
} |
|
|
|
@ -2115,8 +2115,8 @@ static ZEND_VM_HOT ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_INIT_NS_FCALL_BY_N |
|
|
|
} |
|
|
|
} |
|
|
|
fbc = Z_FUNC_P(func); |
|
|
|
if (EXPECTED(fbc->type == ZEND_USER_FUNCTION) && UNEXPECTED(!fbc->op_array.run_time_cache)) { |
|
|
|
fbc = init_func_run_time_cache_ex(func); |
|
|
|
if (EXPECTED(fbc->type == ZEND_USER_FUNCTION) && UNEXPECTED(!RUN_TIME_CACHE(&fbc->op_array))) { |
|
|
|
init_func_run_time_cache(&fbc->op_array); |
|
|
|
} |
|
|
|
CACHE_PTR(opline->result.num, fbc); |
|
|
|
} |
|
|
|
@ -2146,8 +2146,8 @@ static ZEND_VM_HOT ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_INIT_FCALL_SPEC_CO |
|
|
|
ZEND_VM_TAIL_CALL(zend_undefined_function_helper_SPEC(fname ZEND_OPCODE_HANDLER_ARGS_PASSTHRU_CC)); |
|
|
|
} |
|
|
|
fbc = Z_FUNC_P(func); |
|
|
|
if (EXPECTED(fbc->type == ZEND_USER_FUNCTION) && UNEXPECTED(!fbc->op_array.run_time_cache)) { |
|
|
|
fbc = init_func_run_time_cache_ex(func); |
|
|
|
if (EXPECTED(fbc->type == ZEND_USER_FUNCTION) && UNEXPECTED(!RUN_TIME_CACHE(&fbc->op_array))) { |
|
|
|
init_func_run_time_cache(&fbc->op_array); |
|
|
|
} |
|
|
|
CACHE_PTR(opline->result.num, fbc); |
|
|
|
} |
|
|
|
@ -5054,7 +5054,7 @@ static ZEND_VM_COLD ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_INIT_METHOD_CALL_ |
|
|
|
EXPECTED(obj == orig_obj)) { |
|
|
|
CACHE_POLYMORPHIC_PTR(opline->result.num, called_scope, fbc); |
|
|
|
} |
|
|
|
if (EXPECTED(fbc->type == ZEND_USER_FUNCTION) && UNEXPECTED(!fbc->op_array.run_time_cache)) { |
|
|
|
if (EXPECTED(fbc->type == ZEND_USER_FUNCTION) && UNEXPECTED(!RUN_TIME_CACHE(&fbc->op_array))) { |
|
|
|
init_func_run_time_cache(&fbc->op_array); |
|
|
|
} |
|
|
|
} |
|
|
|
@ -5174,7 +5174,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_INIT_STATIC_METHOD_CALL_SPEC_C |
|
|
|
EXPECTED(!(fbc->common.fn_flags & (ZEND_ACC_CALL_VIA_TRAMPOLINE|ZEND_ACC_NEVER_CACHE)))) { |
|
|
|
CACHE_POLYMORPHIC_PTR(opline->result.num, ce, fbc); |
|
|
|
} |
|
|
|
if (EXPECTED(fbc->type == ZEND_USER_FUNCTION) && UNEXPECTED(!fbc->op_array.run_time_cache)) { |
|
|
|
if (EXPECTED(fbc->type == ZEND_USER_FUNCTION) && UNEXPECTED(!RUN_TIME_CACHE(&fbc->op_array))) { |
|
|
|
init_func_run_time_cache(&fbc->op_array); |
|
|
|
} |
|
|
|
if (IS_CONST != IS_CONST) { |
|
|
|
@ -5190,7 +5190,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_INIT_STATIC_METHOD_CALL_SPEC_C |
|
|
|
HANDLE_EXCEPTION(); |
|
|
|
} |
|
|
|
fbc = ce->constructor; |
|
|
|
if (EXPECTED(fbc->type == ZEND_USER_FUNCTION) && UNEXPECTED(!fbc->op_array.run_time_cache)) { |
|
|
|
if (EXPECTED(fbc->type == ZEND_USER_FUNCTION) && UNEXPECTED(!RUN_TIME_CACHE(&fbc->op_array))) { |
|
|
|
init_func_run_time_cache(&fbc->op_array); |
|
|
|
} |
|
|
|
} |
|
|
|
@ -5278,7 +5278,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_INIT_USER_CALL_SPEC_CONST_CONS |
|
|
|
HANDLE_EXCEPTION(); |
|
|
|
} |
|
|
|
|
|
|
|
if (EXPECTED(func->type == ZEND_USER_FUNCTION) && UNEXPECTED(!func->op_array.run_time_cache)) { |
|
|
|
if (EXPECTED(func->type == ZEND_USER_FUNCTION) && UNEXPECTED(!RUN_TIME_CACHE(&func->op_array))) { |
|
|
|
init_func_run_time_cache(&func->op_array); |
|
|
|
} |
|
|
|
} else { |
|
|
|
@ -7215,7 +7215,7 @@ static ZEND_VM_COLD ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_INIT_METHOD_CALL_ |
|
|
|
EXPECTED(obj == orig_obj)) { |
|
|
|
CACHE_POLYMORPHIC_PTR(opline->result.num, called_scope, fbc); |
|
|
|
} |
|
|
|
if (EXPECTED(fbc->type == ZEND_USER_FUNCTION) && UNEXPECTED(!fbc->op_array.run_time_cache)) { |
|
|
|
if (EXPECTED(fbc->type == ZEND_USER_FUNCTION) && UNEXPECTED(!RUN_TIME_CACHE(&fbc->op_array))) { |
|
|
|
init_func_run_time_cache(&fbc->op_array); |
|
|
|
} |
|
|
|
} |
|
|
|
@ -7335,7 +7335,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_INIT_STATIC_METHOD_CALL_SPEC_C |
|
|
|
EXPECTED(!(fbc->common.fn_flags & (ZEND_ACC_CALL_VIA_TRAMPOLINE|ZEND_ACC_NEVER_CACHE)))) { |
|
|
|
CACHE_POLYMORPHIC_PTR(opline->result.num, ce, fbc); |
|
|
|
} |
|
|
|
if (EXPECTED(fbc->type == ZEND_USER_FUNCTION) && UNEXPECTED(!fbc->op_array.run_time_cache)) { |
|
|
|
if (EXPECTED(fbc->type == ZEND_USER_FUNCTION) && UNEXPECTED(!RUN_TIME_CACHE(&fbc->op_array))) { |
|
|
|
init_func_run_time_cache(&fbc->op_array); |
|
|
|
} |
|
|
|
if ((IS_TMP_VAR|IS_VAR) != IS_CONST) { |
|
|
|
@ -7351,7 +7351,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_INIT_STATIC_METHOD_CALL_SPEC_C |
|
|
|
HANDLE_EXCEPTION(); |
|
|
|
} |
|
|
|
fbc = ce->constructor; |
|
|
|
if (EXPECTED(fbc->type == ZEND_USER_FUNCTION) && UNEXPECTED(!fbc->op_array.run_time_cache)) { |
|
|
|
if (EXPECTED(fbc->type == ZEND_USER_FUNCTION) && UNEXPECTED(!RUN_TIME_CACHE(&fbc->op_array))) { |
|
|
|
init_func_run_time_cache(&fbc->op_array); |
|
|
|
} |
|
|
|
} |
|
|
|
@ -7440,7 +7440,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_INIT_USER_CALL_SPEC_CONST_TMPV |
|
|
|
HANDLE_EXCEPTION(); |
|
|
|
} |
|
|
|
|
|
|
|
if (EXPECTED(func->type == ZEND_USER_FUNCTION) && UNEXPECTED(!func->op_array.run_time_cache)) { |
|
|
|
if (EXPECTED(func->type == ZEND_USER_FUNCTION) && UNEXPECTED(!RUN_TIME_CACHE(&func->op_array))) { |
|
|
|
init_func_run_time_cache(&func->op_array); |
|
|
|
} |
|
|
|
} else { |
|
|
|
@ -8566,7 +8566,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_INIT_STATIC_METHOD_CALL_SPEC_C |
|
|
|
EXPECTED(!(fbc->common.fn_flags & (ZEND_ACC_CALL_VIA_TRAMPOLINE|ZEND_ACC_NEVER_CACHE)))) { |
|
|
|
CACHE_POLYMORPHIC_PTR(opline->result.num, ce, fbc); |
|
|
|
} |
|
|
|
if (EXPECTED(fbc->type == ZEND_USER_FUNCTION) && UNEXPECTED(!fbc->op_array.run_time_cache)) { |
|
|
|
if (EXPECTED(fbc->type == ZEND_USER_FUNCTION) && UNEXPECTED(!RUN_TIME_CACHE(&fbc->op_array))) { |
|
|
|
init_func_run_time_cache(&fbc->op_array); |
|
|
|
} |
|
|
|
if (IS_UNUSED != IS_CONST) { |
|
|
|
@ -8582,7 +8582,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_INIT_STATIC_METHOD_CALL_SPEC_C |
|
|
|
HANDLE_EXCEPTION(); |
|
|
|
} |
|
|
|
fbc = ce->constructor; |
|
|
|
if (EXPECTED(fbc->type == ZEND_USER_FUNCTION) && UNEXPECTED(!fbc->op_array.run_time_cache)) { |
|
|
|
if (EXPECTED(fbc->type == ZEND_USER_FUNCTION) && UNEXPECTED(!RUN_TIME_CACHE(&fbc->op_array))) { |
|
|
|
init_func_run_time_cache(&fbc->op_array); |
|
|
|
} |
|
|
|
} |
|
|
|
@ -8724,7 +8724,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_NEW_SPEC_CONST_UNUSED_HANDLER( |
|
|
|
ZEND_CALL_FUNCTION, (zend_function *) &zend_pass_function, |
|
|
|
opline->extended_value, NULL, NULL); |
|
|
|
} else { |
|
|
|
if (EXPECTED(constructor->type == ZEND_USER_FUNCTION) && UNEXPECTED(!constructor->op_array.run_time_cache)) { |
|
|
|
if (EXPECTED(constructor->type == ZEND_USER_FUNCTION) && UNEXPECTED(!RUN_TIME_CACHE(&constructor->op_array))) { |
|
|
|
init_func_run_time_cache(&constructor->op_array); |
|
|
|
} |
|
|
|
/* We are not handling overloaded classes right now */ |
|
|
|
@ -9073,20 +9073,10 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_DECLARE_LAMBDA_FUNCTION_SPEC_C |
|
|
|
zval *zfunc; |
|
|
|
zval *object; |
|
|
|
zend_class_entry *called_scope; |
|
|
|
zend_function *fbc; |
|
|
|
|
|
|
|
zfunc = zend_hash_find_ex(EG(function_table), Z_STR_P(RT_CONSTANT(opline, opline->op1)), 1); |
|
|
|
ZEND_ASSERT(zfunc != NULL && Z_FUNC_P(zfunc)->type == ZEND_USER_FUNCTION); |
|
|
|
|
|
|
|
fbc = Z_PTR_P(zfunc); |
|
|
|
if (fbc->common.fn_flags & ZEND_ACC_IMMUTABLE) { |
|
|
|
zend_function *new_func = zend_arena_alloc(&CG(arena), sizeof(zend_op_array)); |
|
|
|
|
|
|
|
memcpy(new_func, fbc, sizeof(zend_op_array)); |
|
|
|
new_func->common.fn_flags &= ~ZEND_ACC_IMMUTABLE; |
|
|
|
Z_PTR_P(zfunc) = fbc = new_func; |
|
|
|
} |
|
|
|
|
|
|
|
if (Z_TYPE(EX(This)) == IS_OBJECT) { |
|
|
|
called_scope = Z_OBJCE(EX(This)); |
|
|
|
if (UNEXPECTED((Z_FUNC_P(zfunc)->common.fn_flags & ZEND_ACC_STATIC) || |
|
|
|
@ -10297,7 +10287,7 @@ static ZEND_VM_COLD ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_INIT_METHOD_CALL_ |
|
|
|
EXPECTED(obj == orig_obj)) { |
|
|
|
CACHE_POLYMORPHIC_PTR(opline->result.num, called_scope, fbc); |
|
|
|
} |
|
|
|
if (EXPECTED(fbc->type == ZEND_USER_FUNCTION) && UNEXPECTED(!fbc->op_array.run_time_cache)) { |
|
|
|
if (EXPECTED(fbc->type == ZEND_USER_FUNCTION) && UNEXPECTED(!RUN_TIME_CACHE(&fbc->op_array))) { |
|
|
|
init_func_run_time_cache(&fbc->op_array); |
|
|
|
} |
|
|
|
} |
|
|
|
@ -10417,7 +10407,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_INIT_STATIC_METHOD_CALL_SPEC_C |
|
|
|
EXPECTED(!(fbc->common.fn_flags & (ZEND_ACC_CALL_VIA_TRAMPOLINE|ZEND_ACC_NEVER_CACHE)))) { |
|
|
|
CACHE_POLYMORPHIC_PTR(opline->result.num, ce, fbc); |
|
|
|
} |
|
|
|
if (EXPECTED(fbc->type == ZEND_USER_FUNCTION) && UNEXPECTED(!fbc->op_array.run_time_cache)) { |
|
|
|
if (EXPECTED(fbc->type == ZEND_USER_FUNCTION) && UNEXPECTED(!RUN_TIME_CACHE(&fbc->op_array))) { |
|
|
|
init_func_run_time_cache(&fbc->op_array); |
|
|
|
} |
|
|
|
if (IS_CV != IS_CONST) { |
|
|
|
@ -10433,7 +10423,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_INIT_STATIC_METHOD_CALL_SPEC_C |
|
|
|
HANDLE_EXCEPTION(); |
|
|
|
} |
|
|
|
fbc = ce->constructor; |
|
|
|
if (EXPECTED(fbc->type == ZEND_USER_FUNCTION) && UNEXPECTED(!fbc->op_array.run_time_cache)) { |
|
|
|
if (EXPECTED(fbc->type == ZEND_USER_FUNCTION) && UNEXPECTED(!RUN_TIME_CACHE(&fbc->op_array))) { |
|
|
|
init_func_run_time_cache(&fbc->op_array); |
|
|
|
} |
|
|
|
} |
|
|
|
@ -10521,7 +10511,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_INIT_USER_CALL_SPEC_CONST_CV_H |
|
|
|
HANDLE_EXCEPTION(); |
|
|
|
} |
|
|
|
|
|
|
|
if (EXPECTED(func->type == ZEND_USER_FUNCTION) && UNEXPECTED(!func->op_array.run_time_cache)) { |
|
|
|
if (EXPECTED(func->type == ZEND_USER_FUNCTION) && UNEXPECTED(!RUN_TIME_CACHE(&func->op_array))) { |
|
|
|
init_func_run_time_cache(&func->op_array); |
|
|
|
} |
|
|
|
} else { |
|
|
|
@ -14002,7 +13992,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_INIT_METHOD_CALL_SPEC_TMPVAR_C |
|
|
|
EXPECTED(obj == orig_obj)) { |
|
|
|
CACHE_POLYMORPHIC_PTR(opline->result.num, called_scope, fbc); |
|
|
|
} |
|
|
|
if (EXPECTED(fbc->type == ZEND_USER_FUNCTION) && UNEXPECTED(!fbc->op_array.run_time_cache)) { |
|
|
|
if (EXPECTED(fbc->type == ZEND_USER_FUNCTION) && UNEXPECTED(!RUN_TIME_CACHE(&fbc->op_array))) { |
|
|
|
init_func_run_time_cache(&fbc->op_array); |
|
|
|
} |
|
|
|
} |
|
|
|
@ -15597,7 +15587,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_INIT_METHOD_CALL_SPEC_TMPVAR_T |
|
|
|
EXPECTED(obj == orig_obj)) { |
|
|
|
CACHE_POLYMORPHIC_PTR(opline->result.num, called_scope, fbc); |
|
|
|
} |
|
|
|
if (EXPECTED(fbc->type == ZEND_USER_FUNCTION) && UNEXPECTED(!fbc->op_array.run_time_cache)) { |
|
|
|
if (EXPECTED(fbc->type == ZEND_USER_FUNCTION) && UNEXPECTED(!RUN_TIME_CACHE(&fbc->op_array))) { |
|
|
|
init_func_run_time_cache(&fbc->op_array); |
|
|
|
} |
|
|
|
} |
|
|
|
@ -17460,7 +17450,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_INIT_METHOD_CALL_SPEC_TMPVAR_C |
|
|
|
EXPECTED(obj == orig_obj)) { |
|
|
|
CACHE_POLYMORPHIC_PTR(opline->result.num, called_scope, fbc); |
|
|
|
} |
|
|
|
if (EXPECTED(fbc->type == ZEND_USER_FUNCTION) && UNEXPECTED(!fbc->op_array.run_time_cache)) { |
|
|
|
if (EXPECTED(fbc->type == ZEND_USER_FUNCTION) && UNEXPECTED(!RUN_TIME_CACHE(&fbc->op_array))) { |
|
|
|
init_func_run_time_cache(&fbc->op_array); |
|
|
|
} |
|
|
|
} |
|
|
|
@ -23580,7 +23570,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_INIT_STATIC_METHOD_CALL_SPEC_V |
|
|
|
EXPECTED(!(fbc->common.fn_flags & (ZEND_ACC_CALL_VIA_TRAMPOLINE|ZEND_ACC_NEVER_CACHE)))) { |
|
|
|
CACHE_POLYMORPHIC_PTR(opline->result.num, ce, fbc); |
|
|
|
} |
|
|
|
if (EXPECTED(fbc->type == ZEND_USER_FUNCTION) && UNEXPECTED(!fbc->op_array.run_time_cache)) { |
|
|
|
if (EXPECTED(fbc->type == ZEND_USER_FUNCTION) && UNEXPECTED(!RUN_TIME_CACHE(&fbc->op_array))) { |
|
|
|
init_func_run_time_cache(&fbc->op_array); |
|
|
|
} |
|
|
|
if (IS_CONST != IS_CONST) { |
|
|
|
@ -23596,7 +23586,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_INIT_STATIC_METHOD_CALL_SPEC_V |
|
|
|
HANDLE_EXCEPTION(); |
|
|
|
} |
|
|
|
fbc = ce->constructor; |
|
|
|
if (EXPECTED(fbc->type == ZEND_USER_FUNCTION) && UNEXPECTED(!fbc->op_array.run_time_cache)) { |
|
|
|
if (EXPECTED(fbc->type == ZEND_USER_FUNCTION) && UNEXPECTED(!RUN_TIME_CACHE(&fbc->op_array))) { |
|
|
|
init_func_run_time_cache(&fbc->op_array); |
|
|
|
} |
|
|
|
} |
|
|
|
@ -25859,7 +25849,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_INIT_STATIC_METHOD_CALL_SPEC_V |
|
|
|
EXPECTED(!(fbc->common.fn_flags & (ZEND_ACC_CALL_VIA_TRAMPOLINE|ZEND_ACC_NEVER_CACHE)))) { |
|
|
|
CACHE_POLYMORPHIC_PTR(opline->result.num, ce, fbc); |
|
|
|
} |
|
|
|
if (EXPECTED(fbc->type == ZEND_USER_FUNCTION) && UNEXPECTED(!fbc->op_array.run_time_cache)) { |
|
|
|
if (EXPECTED(fbc->type == ZEND_USER_FUNCTION) && UNEXPECTED(!RUN_TIME_CACHE(&fbc->op_array))) { |
|
|
|
init_func_run_time_cache(&fbc->op_array); |
|
|
|
} |
|
|
|
if ((IS_TMP_VAR|IS_VAR) != IS_CONST) { |
|
|
|
@ -25875,7 +25865,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_INIT_STATIC_METHOD_CALL_SPEC_V |
|
|
|
HANDLE_EXCEPTION(); |
|
|
|
} |
|
|
|
fbc = ce->constructor; |
|
|
|
if (EXPECTED(fbc->type == ZEND_USER_FUNCTION) && UNEXPECTED(!fbc->op_array.run_time_cache)) { |
|
|
|
if (EXPECTED(fbc->type == ZEND_USER_FUNCTION) && UNEXPECTED(!RUN_TIME_CACHE(&fbc->op_array))) { |
|
|
|
init_func_run_time_cache(&fbc->op_array); |
|
|
|
} |
|
|
|
} |
|
|
|
@ -27410,7 +27400,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_INIT_STATIC_METHOD_CALL_SPEC_V |
|
|
|
EXPECTED(!(fbc->common.fn_flags & (ZEND_ACC_CALL_VIA_TRAMPOLINE|ZEND_ACC_NEVER_CACHE)))) { |
|
|
|
CACHE_POLYMORPHIC_PTR(opline->result.num, ce, fbc); |
|
|
|
} |
|
|
|
if (EXPECTED(fbc->type == ZEND_USER_FUNCTION) && UNEXPECTED(!fbc->op_array.run_time_cache)) { |
|
|
|
if (EXPECTED(fbc->type == ZEND_USER_FUNCTION) && UNEXPECTED(!RUN_TIME_CACHE(&fbc->op_array))) { |
|
|
|
init_func_run_time_cache(&fbc->op_array); |
|
|
|
} |
|
|
|
if (IS_UNUSED != IS_CONST) { |
|
|
|
@ -27426,7 +27416,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_INIT_STATIC_METHOD_CALL_SPEC_V |
|
|
|
HANDLE_EXCEPTION(); |
|
|
|
} |
|
|
|
fbc = ce->constructor; |
|
|
|
if (EXPECTED(fbc->type == ZEND_USER_FUNCTION) && UNEXPECTED(!fbc->op_array.run_time_cache)) { |
|
|
|
if (EXPECTED(fbc->type == ZEND_USER_FUNCTION) && UNEXPECTED(!RUN_TIME_CACHE(&fbc->op_array))) { |
|
|
|
init_func_run_time_cache(&fbc->op_array); |
|
|
|
} |
|
|
|
} |
|
|
|
@ -27568,7 +27558,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_NEW_SPEC_VAR_UNUSED_HANDLER(ZE |
|
|
|
ZEND_CALL_FUNCTION, (zend_function *) &zend_pass_function, |
|
|
|
opline->extended_value, NULL, NULL); |
|
|
|
} else { |
|
|
|
if (EXPECTED(constructor->type == ZEND_USER_FUNCTION) && UNEXPECTED(!constructor->op_array.run_time_cache)) { |
|
|
|
if (EXPECTED(constructor->type == ZEND_USER_FUNCTION) && UNEXPECTED(!RUN_TIME_CACHE(&constructor->op_array))) { |
|
|
|
init_func_run_time_cache(&constructor->op_array); |
|
|
|
} |
|
|
|
/* We are not handling overloaded classes right now */ |
|
|
|
@ -29821,7 +29811,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_INIT_STATIC_METHOD_CALL_SPEC_V |
|
|
|
EXPECTED(!(fbc->common.fn_flags & (ZEND_ACC_CALL_VIA_TRAMPOLINE|ZEND_ACC_NEVER_CACHE)))) { |
|
|
|
CACHE_POLYMORPHIC_PTR(opline->result.num, ce, fbc); |
|
|
|
} |
|
|
|
if (EXPECTED(fbc->type == ZEND_USER_FUNCTION) && UNEXPECTED(!fbc->op_array.run_time_cache)) { |
|
|
|
if (EXPECTED(fbc->type == ZEND_USER_FUNCTION) && UNEXPECTED(!RUN_TIME_CACHE(&fbc->op_array))) { |
|
|
|
init_func_run_time_cache(&fbc->op_array); |
|
|
|
} |
|
|
|
if (IS_CV != IS_CONST) { |
|
|
|
@ -29837,7 +29827,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_INIT_STATIC_METHOD_CALL_SPEC_V |
|
|
|
HANDLE_EXCEPTION(); |
|
|
|
} |
|
|
|
fbc = ce->constructor; |
|
|
|
if (EXPECTED(fbc->type == ZEND_USER_FUNCTION) && UNEXPECTED(!fbc->op_array.run_time_cache)) { |
|
|
|
if (EXPECTED(fbc->type == ZEND_USER_FUNCTION) && UNEXPECTED(!RUN_TIME_CACHE(&fbc->op_array))) { |
|
|
|
init_func_run_time_cache(&fbc->op_array); |
|
|
|
} |
|
|
|
} |
|
|
|
@ -31741,7 +31731,7 @@ static ZEND_VM_HOT ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_INIT_METHOD_CALL_S |
|
|
|
EXPECTED(obj == orig_obj)) { |
|
|
|
CACHE_POLYMORPHIC_PTR(opline->result.num, called_scope, fbc); |
|
|
|
} |
|
|
|
if (EXPECTED(fbc->type == ZEND_USER_FUNCTION) && UNEXPECTED(!fbc->op_array.run_time_cache)) { |
|
|
|
if (EXPECTED(fbc->type == ZEND_USER_FUNCTION) && UNEXPECTED(!RUN_TIME_CACHE(&fbc->op_array))) { |
|
|
|
init_func_run_time_cache(&fbc->op_array); |
|
|
|
} |
|
|
|
} |
|
|
|
@ -31861,7 +31851,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_INIT_STATIC_METHOD_CALL_SPEC_U |
|
|
|
EXPECTED(!(fbc->common.fn_flags & (ZEND_ACC_CALL_VIA_TRAMPOLINE|ZEND_ACC_NEVER_CACHE)))) { |
|
|
|
CACHE_POLYMORPHIC_PTR(opline->result.num, ce, fbc); |
|
|
|
} |
|
|
|
if (EXPECTED(fbc->type == ZEND_USER_FUNCTION) && UNEXPECTED(!fbc->op_array.run_time_cache)) { |
|
|
|
if (EXPECTED(fbc->type == ZEND_USER_FUNCTION) && UNEXPECTED(!RUN_TIME_CACHE(&fbc->op_array))) { |
|
|
|
init_func_run_time_cache(&fbc->op_array); |
|
|
|
} |
|
|
|
if (IS_CONST != IS_CONST) { |
|
|
|
@ -31877,7 +31867,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_INIT_STATIC_METHOD_CALL_SPEC_U |
|
|
|
HANDLE_EXCEPTION(); |
|
|
|
} |
|
|
|
fbc = ce->constructor; |
|
|
|
if (EXPECTED(fbc->type == ZEND_USER_FUNCTION) && UNEXPECTED(!fbc->op_array.run_time_cache)) { |
|
|
|
if (EXPECTED(fbc->type == ZEND_USER_FUNCTION) && UNEXPECTED(!RUN_TIME_CACHE(&fbc->op_array))) { |
|
|
|
init_func_run_time_cache(&fbc->op_array); |
|
|
|
} |
|
|
|
} |
|
|
|
@ -33426,7 +33416,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_INIT_METHOD_CALL_SPEC_UNUSED_T |
|
|
|
EXPECTED(obj == orig_obj)) { |
|
|
|
CACHE_POLYMORPHIC_PTR(opline->result.num, called_scope, fbc); |
|
|
|
} |
|
|
|
if (EXPECTED(fbc->type == ZEND_USER_FUNCTION) && UNEXPECTED(!fbc->op_array.run_time_cache)) { |
|
|
|
if (EXPECTED(fbc->type == ZEND_USER_FUNCTION) && UNEXPECTED(!RUN_TIME_CACHE(&fbc->op_array))) { |
|
|
|
init_func_run_time_cache(&fbc->op_array); |
|
|
|
} |
|
|
|
} |
|
|
|
@ -33546,7 +33536,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_INIT_STATIC_METHOD_CALL_SPEC_U |
|
|
|
EXPECTED(!(fbc->common.fn_flags & (ZEND_ACC_CALL_VIA_TRAMPOLINE|ZEND_ACC_NEVER_CACHE)))) { |
|
|
|
CACHE_POLYMORPHIC_PTR(opline->result.num, ce, fbc); |
|
|
|
} |
|
|
|
if (EXPECTED(fbc->type == ZEND_USER_FUNCTION) && UNEXPECTED(!fbc->op_array.run_time_cache)) { |
|
|
|
if (EXPECTED(fbc->type == ZEND_USER_FUNCTION) && UNEXPECTED(!RUN_TIME_CACHE(&fbc->op_array))) { |
|
|
|
init_func_run_time_cache(&fbc->op_array); |
|
|
|
} |
|
|
|
if ((IS_TMP_VAR|IS_VAR) != IS_CONST) { |
|
|
|
@ -33562,7 +33552,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_INIT_STATIC_METHOD_CALL_SPEC_U |
|
|
|
HANDLE_EXCEPTION(); |
|
|
|
} |
|
|
|
fbc = ce->constructor; |
|
|
|
if (EXPECTED(fbc->type == ZEND_USER_FUNCTION) && UNEXPECTED(!fbc->op_array.run_time_cache)) { |
|
|
|
if (EXPECTED(fbc->type == ZEND_USER_FUNCTION) && UNEXPECTED(!RUN_TIME_CACHE(&fbc->op_array))) { |
|
|
|
init_func_run_time_cache(&fbc->op_array); |
|
|
|
} |
|
|
|
} |
|
|
|
@ -34078,7 +34068,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_INIT_STATIC_METHOD_CALL_SPEC_U |
|
|
|
EXPECTED(!(fbc->common.fn_flags & (ZEND_ACC_CALL_VIA_TRAMPOLINE|ZEND_ACC_NEVER_CACHE)))) { |
|
|
|
CACHE_POLYMORPHIC_PTR(opline->result.num, ce, fbc); |
|
|
|
} |
|
|
|
if (EXPECTED(fbc->type == ZEND_USER_FUNCTION) && UNEXPECTED(!fbc->op_array.run_time_cache)) { |
|
|
|
if (EXPECTED(fbc->type == ZEND_USER_FUNCTION) && UNEXPECTED(!RUN_TIME_CACHE(&fbc->op_array))) { |
|
|
|
init_func_run_time_cache(&fbc->op_array); |
|
|
|
} |
|
|
|
if (IS_UNUSED != IS_CONST) { |
|
|
|
@ -34094,7 +34084,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_INIT_STATIC_METHOD_CALL_SPEC_U |
|
|
|
HANDLE_EXCEPTION(); |
|
|
|
} |
|
|
|
fbc = ce->constructor; |
|
|
|
if (EXPECTED(fbc->type == ZEND_USER_FUNCTION) && UNEXPECTED(!fbc->op_array.run_time_cache)) { |
|
|
|
if (EXPECTED(fbc->type == ZEND_USER_FUNCTION) && UNEXPECTED(!RUN_TIME_CACHE(&fbc->op_array))) { |
|
|
|
init_func_run_time_cache(&fbc->op_array); |
|
|
|
} |
|
|
|
} |
|
|
|
@ -34236,7 +34226,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_NEW_SPEC_UNUSED_UNUSED_HANDLER |
|
|
|
ZEND_CALL_FUNCTION, (zend_function *) &zend_pass_function, |
|
|
|
opline->extended_value, NULL, NULL); |
|
|
|
} else { |
|
|
|
if (EXPECTED(constructor->type == ZEND_USER_FUNCTION) && UNEXPECTED(!constructor->op_array.run_time_cache)) { |
|
|
|
if (EXPECTED(constructor->type == ZEND_USER_FUNCTION) && UNEXPECTED(!RUN_TIME_CACHE(&constructor->op_array))) { |
|
|
|
init_func_run_time_cache(&constructor->op_array); |
|
|
|
} |
|
|
|
/* We are not handling overloaded classes right now */ |
|
|
|
@ -35756,7 +35746,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_INIT_METHOD_CALL_SPEC_UNUSED_C |
|
|
|
EXPECTED(obj == orig_obj)) { |
|
|
|
CACHE_POLYMORPHIC_PTR(opline->result.num, called_scope, fbc); |
|
|
|
} |
|
|
|
if (EXPECTED(fbc->type == ZEND_USER_FUNCTION) && UNEXPECTED(!fbc->op_array.run_time_cache)) { |
|
|
|
if (EXPECTED(fbc->type == ZEND_USER_FUNCTION) && UNEXPECTED(!RUN_TIME_CACHE(&fbc->op_array))) { |
|
|
|
init_func_run_time_cache(&fbc->op_array); |
|
|
|
} |
|
|
|
} |
|
|
|
@ -35876,7 +35866,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_INIT_STATIC_METHOD_CALL_SPEC_U |
|
|
|
EXPECTED(!(fbc->common.fn_flags & (ZEND_ACC_CALL_VIA_TRAMPOLINE|ZEND_ACC_NEVER_CACHE)))) { |
|
|
|
CACHE_POLYMORPHIC_PTR(opline->result.num, ce, fbc); |
|
|
|
} |
|
|
|
if (EXPECTED(fbc->type == ZEND_USER_FUNCTION) && UNEXPECTED(!fbc->op_array.run_time_cache)) { |
|
|
|
if (EXPECTED(fbc->type == ZEND_USER_FUNCTION) && UNEXPECTED(!RUN_TIME_CACHE(&fbc->op_array))) { |
|
|
|
init_func_run_time_cache(&fbc->op_array); |
|
|
|
} |
|
|
|
if (IS_CV != IS_CONST) { |
|
|
|
@ -35892,7 +35882,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_INIT_STATIC_METHOD_CALL_SPEC_U |
|
|
|
HANDLE_EXCEPTION(); |
|
|
|
} |
|
|
|
fbc = ce->constructor; |
|
|
|
if (EXPECTED(fbc->type == ZEND_USER_FUNCTION) && UNEXPECTED(!fbc->op_array.run_time_cache)) { |
|
|
|
if (EXPECTED(fbc->type == ZEND_USER_FUNCTION) && UNEXPECTED(!RUN_TIME_CACHE(&fbc->op_array))) { |
|
|
|
init_func_run_time_cache(&fbc->op_array); |
|
|
|
} |
|
|
|
} |
|
|
|
@ -40719,7 +40709,7 @@ static ZEND_VM_HOT ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_INIT_METHOD_CALL_S |
|
|
|
EXPECTED(obj == orig_obj)) { |
|
|
|
CACHE_POLYMORPHIC_PTR(opline->result.num, called_scope, fbc); |
|
|
|
} |
|
|
|
if (EXPECTED(fbc->type == ZEND_USER_FUNCTION) && UNEXPECTED(!fbc->op_array.run_time_cache)) { |
|
|
|
if (EXPECTED(fbc->type == ZEND_USER_FUNCTION) && UNEXPECTED(!RUN_TIME_CACHE(&fbc->op_array))) { |
|
|
|
init_func_run_time_cache(&fbc->op_array); |
|
|
|
} |
|
|
|
} |
|
|
|
@ -44383,7 +44373,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_INIT_METHOD_CALL_SPEC_CV_TMPVA |
|
|
|
EXPECTED(obj == orig_obj)) { |
|
|
|
CACHE_POLYMORPHIC_PTR(opline->result.num, called_scope, fbc); |
|
|
|
} |
|
|
|
if (EXPECTED(fbc->type == ZEND_USER_FUNCTION) && UNEXPECTED(!fbc->op_array.run_time_cache)) { |
|
|
|
if (EXPECTED(fbc->type == ZEND_USER_FUNCTION) && UNEXPECTED(!RUN_TIME_CACHE(&fbc->op_array))) { |
|
|
|
init_func_run_time_cache(&fbc->op_array); |
|
|
|
} |
|
|
|
} |
|
|
|
@ -47133,13 +47123,17 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_BIND_STATIC_SPEC_CV_UNUSED_HAN |
|
|
|
variable_ptr = EX_VAR(opline->op1.var); |
|
|
|
zval_ptr_dtor(variable_ptr); |
|
|
|
|
|
|
|
ht = EX(func)->op_array.static_variables; |
|
|
|
ZEND_ASSERT(ht != NULL); |
|
|
|
if (GC_REFCOUNT(ht) > 1) { |
|
|
|
ht = ZEND_MAP_PTR_GET(EX(func)->op_array.static_variables_ptr); |
|
|
|
if (!ht) { |
|
|
|
ZEND_ASSERT(EX(func)->op_array.fn_flags & ZEND_ACC_IMMUTABLE); |
|
|
|
ht = zend_array_dup(EX(func)->op_array.static_variables); |
|
|
|
ZEND_MAP_PTR_SET(EX(func)->op_array.static_variables_ptr, ht); |
|
|
|
} else if (GC_REFCOUNT(ht) > 1) { |
|
|
|
if (!(GC_FLAGS(ht) & IS_ARRAY_IMMUTABLE)) { |
|
|
|
GC_DELREF(ht); |
|
|
|
} |
|
|
|
EX(func)->op_array.static_variables = ht = zend_array_dup(ht); |
|
|
|
ht = zend_array_dup(ht); |
|
|
|
ZEND_MAP_PTR_SET(EX(func)->op_array.static_variables_ptr, ht); |
|
|
|
} |
|
|
|
|
|
|
|
value = (zval*)((char*)ht->arData + (opline->extended_value & ~ZEND_BIND_REF)); |
|
|
|
@ -50181,7 +50175,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_INIT_METHOD_CALL_SPEC_CV_CV_HA |
|
|
|
EXPECTED(obj == orig_obj)) { |
|
|
|
CACHE_POLYMORPHIC_PTR(opline->result.num, called_scope, fbc); |
|
|
|
} |
|
|
|
if (EXPECTED(fbc->type == ZEND_USER_FUNCTION) && UNEXPECTED(!fbc->op_array.run_time_cache)) { |
|
|
|
if (EXPECTED(fbc->type == ZEND_USER_FUNCTION) && UNEXPECTED(!RUN_TIME_CACHE(&fbc->op_array))) { |
|
|
|
init_func_run_time_cache(&fbc->op_array); |
|
|
|
} |
|
|
|
} |
|
|
|
|