mirror of
https://github.com/php/php-src.git
synced 2024-09-22 02:17:32 +00:00
Specializer was updated with executor's fixes.
This commit is contained in:
parent
3009a073b0
commit
480f4e3565
@ -1217,6 +1217,7 @@ ZEND_VM_HELPER_EX(zend_fetch_var_address_helper, int type)
|
||||
}
|
||||
}
|
||||
switch (opline->op2.u.EA.type) {
|
||||
case ZEND_FETCH_GLOBAL:
|
||||
case ZEND_FETCH_LOCAL:
|
||||
FREE_OP1();
|
||||
break;
|
||||
@ -2614,8 +2615,14 @@ ZEND_VM_HANDLER(ZEND_RECV)
|
||||
if (zend_ptr_stack_get_arg(arg_num, (void **) ¶m TSRMLS_CC)==FAILURE) {
|
||||
char *space;
|
||||
char *class_name = get_active_class_name(&space TSRMLS_CC);
|
||||
zend_execute_data *ptr = EX(prev_execute_data);
|
||||
|
||||
zend_verify_arg_type((zend_function *) EG(active_op_array), arg_num, NULL TSRMLS_CC);
|
||||
zend_error(E_WARNING, "Missing argument %ld for %s%s%s()", opline->op1.u.constant.value.lval, class_name, space, get_active_function_name(TSRMLS_C));
|
||||
if(ptr && ptr->op_array) {
|
||||
zend_error(E_WARNING, "Missing argument %ld for %s%s%s(), called in %s on line %d and defined", opline->op1.u.constant.value.lval, class_name, space, get_active_function_name(TSRMLS_C), ptr->op_array->filename, ptr->opline->lineno);
|
||||
} else {
|
||||
zend_error(E_WARNING, "Missing argument %ld for %s%s%s()", opline->op1.u.constant.value.lval, class_name, space, get_active_function_name(TSRMLS_C));
|
||||
}
|
||||
if (opline->result.op_type == IS_VAR) {
|
||||
PZVAL_UNLOCK_FREE(*EX_T(opline->result.u.var).var.ptr_ptr);
|
||||
}
|
||||
@ -3287,7 +3294,7 @@ ZEND_VM_HANDLER(ZEND_FE_RESET)
|
||||
if (opline->extended_value) {
|
||||
array_ptr_ptr = GET_OP1_ZVAL_PTR_PTR(BP_VAR_R);
|
||||
if (array_ptr_ptr == NULL) {
|
||||
MAKE_STD_ZVAL(array_ptr);
|
||||
ALLOC_INIT_ZVAL(array_ptr);
|
||||
} else if (Z_TYPE_PP(array_ptr_ptr) == IS_OBJECT) {
|
||||
ce = Z_OBJCE_PP(array_ptr_ptr);
|
||||
if (!ce || ce->get_iterator == NULL) {
|
||||
|
@ -117,19 +117,19 @@
|
||||
#define SPEC_IS_OP1_TMP_FREE_ANY() IS_TMP_FREE(free_op1)
|
||||
#define SPEC_IS_OP1_TMP_FREE_CONST() 0
|
||||
#define SPEC_IS_OP1_TMP_FREE_TMP() 1
|
||||
#define SPEC_IS_OP1_TMP_FREE_VAR() IS_TMP_FREE(free_op1)
|
||||
#define SPEC_IS_OP1_TMP_FREE_VAR() 0
|
||||
#define SPEC_IS_OP1_TMP_FREE_UNUSED() 0
|
||||
|
||||
#define SPEC_FREE_OP1_ANY() FREE_OP(free_op1);
|
||||
#define SPEC_FREE_OP1_CONST()
|
||||
#define SPEC_FREE_OP1_TMP() zval_dtor(free_op1.var)
|
||||
#define SPEC_FREE_OP1_VAR() FREE_OP(free_op1);
|
||||
#define SPEC_FREE_OP1_VAR() FREE_OP_VAR_PTR(free_op1);
|
||||
#define SPEC_FREE_OP1_UNUSED()
|
||||
|
||||
#define SPEC_FREE_OP1_IF_VAR_ANY() FREE_OP_IF_VAR(free_op1);
|
||||
#define SPEC_FREE_OP1_IF_VAR_CONST()
|
||||
#define SPEC_FREE_OP1_IF_VAR_TMP()
|
||||
#define SPEC_FREE_OP1_IF_VAR_VAR() FREE_OP_IF_VAR(free_op1);
|
||||
#define SPEC_FREE_OP1_IF_VAR_VAR() FREE_OP_VAR_PTR(free_op1);
|
||||
#define SPEC_FREE_OP1_IF_VAR_UNUSED()
|
||||
|
||||
#define SPEC_FREE_OP1_VAR_PTR_ANY() FREE_OP_VAR_PTR(free_op1);
|
||||
@ -171,19 +171,19 @@
|
||||
#define SPEC_IS_OP2_TMP_FREE_ANY() IS_TMP_FREE(free_op2)
|
||||
#define SPEC_IS_OP2_TMP_FREE_CONST() 0
|
||||
#define SPEC_IS_OP2_TMP_FREE_TMP() 1
|
||||
#define SPEC_IS_OP2_TMP_FREE_VAR() IS_TMP_FREE(free_op2)
|
||||
#define SPEC_IS_OP2_TMP_FREE_VAR() 0
|
||||
#define SPEC_IS_OP2_TMP_FREE_UNUSED() 0
|
||||
|
||||
#define SPEC_FREE_OP2_ANY() FREE_OP(free_op2);
|
||||
#define SPEC_FREE_OP2_CONST()
|
||||
#define SPEC_FREE_OP2_TMP() zval_dtor(free_op2.var)
|
||||
#define SPEC_FREE_OP2_VAR() FREE_OP(free_op2);
|
||||
#define SPEC_FREE_OP2_VAR() FREE_OP_VAR_PTR(free_op2);
|
||||
#define SPEC_FREE_OP2_UNUSED()
|
||||
|
||||
#define SPEC_FREE_OP2_IF_VAR_ANY() FREE_OP_IF_VAR(free_op2);
|
||||
#define SPEC_FREE_OP2_IF_VAR_CONST()
|
||||
#define SPEC_FREE_OP2_IF_VAR_TMP()
|
||||
#define SPEC_FREE_OP2_IF_VAR_VAR() FREE_OP_IF_VAR(free_op2);
|
||||
#define SPEC_FREE_OP2_IF_VAR_VAR() FREE_OP_VAR_PTR(free_op2);
|
||||
#define SPEC_FREE_OP2_IF_VAR_UNUSED()
|
||||
|
||||
#define SPEC_FREE_OP2_VAR_PTR_ANY() FREE_OP_VAR_PTR(free_op2);
|
||||
|
Loading…
Reference in New Issue
Block a user