From 8318379dd36c0cac601e8f95697da01b6f7706ad Mon Sep 17 00:00:00 2001 From: Nikita Popov Date: Thu, 9 Jul 2020 11:54:08 +0200 Subject: [PATCH] Switch back to FREE_UNFETCHED_OP_DATA Some of the code paths leading to this do not fetch op data. Hopefully this fixes the release build failure. --- Zend/zend_vm_def.h | 2 +- Zend/zend_vm_execute.h | 32 ++++++++++++++++---------------- 2 files changed, 17 insertions(+), 17 deletions(-) diff --git a/Zend/zend_vm_def.h b/Zend/zend_vm_def.h index 64edccbdf7..827548504c 100644 --- a/Zend/zend_vm_def.h +++ b/Zend/zend_vm_def.h @@ -2705,7 +2705,7 @@ ZEND_VM_C_LABEL(try_assign_dim_array): } dim = GET_OP2_ZVAL_PTR(BP_VAR_R); ZEND_VM_C_LABEL(assign_dim_error): - FREE_OP_DATA(); + FREE_UNFETCHED_OP_DATA(); if (UNEXPECTED(RETURN_VALUE_USED(opline))) { ZVAL_NULL(EX_VAR(opline->result.var)); } diff --git a/Zend/zend_vm_execute.h b/Zend/zend_vm_execute.h index d091ee200b..ae30886c90 100644 --- a/Zend/zend_vm_execute.h +++ b/Zend/zend_vm_execute.h @@ -23307,7 +23307,7 @@ try_assign_dim_array: } dim = RT_CONSTANT(opline, opline->op2); assign_dim_error: - zval_ptr_dtor_nogc(free_op_data); + zval_ptr_dtor_nogc(EX_VAR((opline+1)->op1.var)); if (UNEXPECTED(RETURN_VALUE_USED(opline))) { ZVAL_NULL(EX_VAR(opline->result.var)); } @@ -23422,7 +23422,7 @@ try_assign_dim_array: } dim = RT_CONSTANT(opline, opline->op2); assign_dim_error: - zval_ptr_dtor_nogc(free_op_data); + zval_ptr_dtor_nogc(EX_VAR((opline+1)->op1.var)); if (UNEXPECTED(RETURN_VALUE_USED(opline))) { ZVAL_NULL(EX_VAR(opline->result.var)); } @@ -25601,7 +25601,7 @@ try_assign_dim_array: } dim = _get_zval_ptr_var(opline->op2.var, &free_op2 EXECUTE_DATA_CC); assign_dim_error: - zval_ptr_dtor_nogc(free_op_data); + zval_ptr_dtor_nogc(EX_VAR((opline+1)->op1.var)); if (UNEXPECTED(RETURN_VALUE_USED(opline))) { ZVAL_NULL(EX_VAR(opline->result.var)); } @@ -25716,7 +25716,7 @@ try_assign_dim_array: } dim = _get_zval_ptr_var(opline->op2.var, &free_op2 EXECUTE_DATA_CC); assign_dim_error: - zval_ptr_dtor_nogc(free_op_data); + zval_ptr_dtor_nogc(EX_VAR((opline+1)->op1.var)); if (UNEXPECTED(RETURN_VALUE_USED(opline))) { ZVAL_NULL(EX_VAR(opline->result.var)); } @@ -27176,7 +27176,7 @@ try_assign_dim_array: } dim = NULL; assign_dim_error: - zval_ptr_dtor_nogc(free_op_data); + zval_ptr_dtor_nogc(EX_VAR((opline+1)->op1.var)); if (UNEXPECTED(RETURN_VALUE_USED(opline))) { ZVAL_NULL(EX_VAR(opline->result.var)); } @@ -27291,7 +27291,7 @@ try_assign_dim_array: } dim = NULL; assign_dim_error: - zval_ptr_dtor_nogc(free_op_data); + zval_ptr_dtor_nogc(EX_VAR((opline+1)->op1.var)); if (UNEXPECTED(RETURN_VALUE_USED(opline))) { ZVAL_NULL(EX_VAR(opline->result.var)); } @@ -29274,7 +29274,7 @@ try_assign_dim_array: } dim = _get_zval_ptr_cv_BP_VAR_R(opline->op2.var EXECUTE_DATA_CC); assign_dim_error: - zval_ptr_dtor_nogc(free_op_data); + zval_ptr_dtor_nogc(EX_VAR((opline+1)->op1.var)); if (UNEXPECTED(RETURN_VALUE_USED(opline))) { ZVAL_NULL(EX_VAR(opline->result.var)); } @@ -29389,7 +29389,7 @@ try_assign_dim_array: } dim = _get_zval_ptr_cv_BP_VAR_R(opline->op2.var EXECUTE_DATA_CC); assign_dim_error: - zval_ptr_dtor_nogc(free_op_data); + zval_ptr_dtor_nogc(EX_VAR((opline+1)->op1.var)); if (UNEXPECTED(RETURN_VALUE_USED(opline))) { ZVAL_NULL(EX_VAR(opline->result.var)); } @@ -40475,7 +40475,7 @@ try_assign_dim_array: } dim = RT_CONSTANT(opline, opline->op2); assign_dim_error: - zval_ptr_dtor_nogc(free_op_data); + zval_ptr_dtor_nogc(EX_VAR((opline+1)->op1.var)); if (UNEXPECTED(RETURN_VALUE_USED(opline))) { ZVAL_NULL(EX_VAR(opline->result.var)); } @@ -40590,7 +40590,7 @@ try_assign_dim_array: } dim = RT_CONSTANT(opline, opline->op2); assign_dim_error: - zval_ptr_dtor_nogc(free_op_data); + zval_ptr_dtor_nogc(EX_VAR((opline+1)->op1.var)); if (UNEXPECTED(RETURN_VALUE_USED(opline))) { ZVAL_NULL(EX_VAR(opline->result.var)); } @@ -43973,7 +43973,7 @@ try_assign_dim_array: } dim = _get_zval_ptr_var(opline->op2.var, &free_op2 EXECUTE_DATA_CC); assign_dim_error: - zval_ptr_dtor_nogc(free_op_data); + zval_ptr_dtor_nogc(EX_VAR((opline+1)->op1.var)); if (UNEXPECTED(RETURN_VALUE_USED(opline))) { ZVAL_NULL(EX_VAR(opline->result.var)); } @@ -44088,7 +44088,7 @@ try_assign_dim_array: } dim = _get_zval_ptr_var(opline->op2.var, &free_op2 EXECUTE_DATA_CC); assign_dim_error: - zval_ptr_dtor_nogc(free_op_data); + zval_ptr_dtor_nogc(EX_VAR((opline+1)->op1.var)); if (UNEXPECTED(RETURN_VALUE_USED(opline))) { ZVAL_NULL(EX_VAR(opline->result.var)); } @@ -46002,7 +46002,7 @@ try_assign_dim_array: } dim = NULL; assign_dim_error: - zval_ptr_dtor_nogc(free_op_data); + zval_ptr_dtor_nogc(EX_VAR((opline+1)->op1.var)); if (UNEXPECTED(RETURN_VALUE_USED(opline))) { ZVAL_NULL(EX_VAR(opline->result.var)); } @@ -46117,7 +46117,7 @@ try_assign_dim_array: } dim = NULL; assign_dim_error: - zval_ptr_dtor_nogc(free_op_data); + zval_ptr_dtor_nogc(EX_VAR((opline+1)->op1.var)); if (UNEXPECTED(RETURN_VALUE_USED(opline))) { ZVAL_NULL(EX_VAR(opline->result.var)); } @@ -49051,7 +49051,7 @@ try_assign_dim_array: } dim = _get_zval_ptr_cv_BP_VAR_R(opline->op2.var EXECUTE_DATA_CC); assign_dim_error: - zval_ptr_dtor_nogc(free_op_data); + zval_ptr_dtor_nogc(EX_VAR((opline+1)->op1.var)); if (UNEXPECTED(RETURN_VALUE_USED(opline))) { ZVAL_NULL(EX_VAR(opline->result.var)); } @@ -49166,7 +49166,7 @@ try_assign_dim_array: } dim = _get_zval_ptr_cv_BP_VAR_R(opline->op2.var EXECUTE_DATA_CC); assign_dim_error: - zval_ptr_dtor_nogc(free_op_data); + zval_ptr_dtor_nogc(EX_VAR((opline+1)->op1.var)); if (UNEXPECTED(RETURN_VALUE_USED(opline))) { ZVAL_NULL(EX_VAR(opline->result.var)); } -- 2.40.0