@@ -799,27 +799,6 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_ASSIGN_STATIC_PROP_OP_SPEC_HAN
799799 ZEND_VM_NEXT_OPCODE_EX(1, 2);
800800}
801801
802- static zend_never_inline ZEND_COLD ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL zend_assign_dim_op_obj_undef_helper_SPEC(zend_object *obj ZEND_OPCODE_HANDLER_ARGS_DC)
803- {
804- USE_OPLINE
805- zval *dim;
806-
807- GC_ADDREF(obj);
808- dim = ZVAL_UNDEFINED_OP2();
809- if (UNEXPECTED(GC_DELREF(obj) == 0)) {
810- zend_objects_store_del(obj);
811- FREE_OP((opline+1)->op1_type, (opline+1)->op1.var);
812- if (UNEXPECTED(RETURN_VALUE_USED(opline))) {
813- ZVAL_NULL(EX_VAR(opline->result.var));
814- }
815- } else {
816- zend_binary_assign_op_obj_dim(obj, dim OPLINE_CC EXECUTE_DATA_CC);
817- }
818- FREE_OP(opline->op2_type, opline->op2.var);
819- FREE_OP(opline->op1_type, opline->op1.var);
820- ZEND_VM_NEXT_OPCODE_EX(1, 2);
821- }
822-
823802static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_PRE_INC_STATIC_PROP_SPEC_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
824803{
825804 USE_OPLINE
@@ -22535,13 +22514,17 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_ASSIGN_DIM_OP_SPEC_VAR_CONST_H
2253522514 if (EXPECTED(Z_TYPE_P(container) == IS_OBJECT)) {
2253622515 zend_object *obj = Z_OBJ_P(container);
2253722516
22517+ GC_ADDREF(obj);
2253822518 dim = RT_CONSTANT(opline, opline->op2);
2253922519 if (IS_CONST == IS_CV && UNEXPECTED(Z_ISUNDEF_P(dim))) {
22540- ZEND_VM_TAIL_CALL(zend_assign_dim_op_obj_undef_helper_SPEC(obj ZEND_OPCODE_HANDLER_ARGS_PASSTHRU_CC) );
22520+ dim = ZVAL_UNDEFINED_OP2( );
2254122521 } else if (IS_CONST == IS_CONST && Z_EXTRA_P(dim) == ZEND_EXTRA_VALUE) {
2254222522 dim++;
2254322523 }
2254422524 zend_binary_assign_op_obj_dim(obj, dim OPLINE_CC EXECUTE_DATA_CC);
22525+ if (UNEXPECTED(GC_DELREF(obj) == 0)) {
22526+ zend_objects_store_del(obj);
22527+ }
2254522528 } else if (EXPECTED(Z_TYPE_P(container) <= IS_FALSE)) {
2254622529 HashTable *ht;
2254722530 zend_uchar old_type;
@@ -25186,13 +25169,17 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_ASSIGN_DIM_OP_SPEC_VAR_TMPVAR_
2518625169 if (EXPECTED(Z_TYPE_P(container) == IS_OBJECT)) {
2518725170 zend_object *obj = Z_OBJ_P(container);
2518825171
25172+ GC_ADDREF(obj);
2518925173 dim = _get_zval_ptr_var(opline->op2.var EXECUTE_DATA_CC);
2519025174 if ((IS_TMP_VAR|IS_VAR) == IS_CV && UNEXPECTED(Z_ISUNDEF_P(dim))) {
25191- ZEND_VM_TAIL_CALL(zend_assign_dim_op_obj_undef_helper_SPEC(obj ZEND_OPCODE_HANDLER_ARGS_PASSTHRU_CC) );
25175+ dim = ZVAL_UNDEFINED_OP2( );
2519225176 } else if ((IS_TMP_VAR|IS_VAR) == IS_CONST && Z_EXTRA_P(dim) == ZEND_EXTRA_VALUE) {
2519325177 dim++;
2519425178 }
2519525179 zend_binary_assign_op_obj_dim(obj, dim OPLINE_CC EXECUTE_DATA_CC);
25180+ if (UNEXPECTED(GC_DELREF(obj) == 0)) {
25181+ zend_objects_store_del(obj);
25182+ }
2519625183 } else if (EXPECTED(Z_TYPE_P(container) <= IS_FALSE)) {
2519725184 HashTable *ht;
2519825185 zend_uchar old_type;
@@ -27475,13 +27462,17 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_ASSIGN_DIM_OP_SPEC_VAR_UNUSED_
2747527462 if (EXPECTED(Z_TYPE_P(container) == IS_OBJECT)) {
2747627463 zend_object *obj = Z_OBJ_P(container);
2747727464
27465+ GC_ADDREF(obj);
2747827466 dim = NULL;
2747927467 if (IS_UNUSED == IS_CV && UNEXPECTED(Z_ISUNDEF_P(dim))) {
27480- ZEND_VM_TAIL_CALL(zend_assign_dim_op_obj_undef_helper_SPEC(obj ZEND_OPCODE_HANDLER_ARGS_PASSTHRU_CC) );
27468+ dim = ZVAL_UNDEFINED_OP2( );
2748127469 } else if (IS_UNUSED == IS_CONST && Z_EXTRA_P(dim) == ZEND_EXTRA_VALUE) {
2748227470 dim++;
2748327471 }
2748427472 zend_binary_assign_op_obj_dim(obj, dim OPLINE_CC EXECUTE_DATA_CC);
27473+ if (UNEXPECTED(GC_DELREF(obj) == 0)) {
27474+ zend_objects_store_del(obj);
27475+ }
2748527476 } else if (EXPECTED(Z_TYPE_P(container) <= IS_FALSE)) {
2748627477 HashTable *ht;
2748727478 zend_uchar old_type;
@@ -29312,13 +29303,17 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_ASSIGN_DIM_OP_SPEC_VAR_CV_HAND
2931229303 if (EXPECTED(Z_TYPE_P(container) == IS_OBJECT)) {
2931329304 zend_object *obj = Z_OBJ_P(container);
2931429305
29306+ GC_ADDREF(obj);
2931529307 dim = EX_VAR(opline->op2.var);
2931629308 if (IS_CV == IS_CV && UNEXPECTED(Z_ISUNDEF_P(dim))) {
29317- ZEND_VM_TAIL_CALL(zend_assign_dim_op_obj_undef_helper_SPEC(obj ZEND_OPCODE_HANDLER_ARGS_PASSTHRU_CC) );
29309+ dim = ZVAL_UNDEFINED_OP2( );
2931829310 } else if (IS_CV == IS_CONST && Z_EXTRA_P(dim) == ZEND_EXTRA_VALUE) {
2931929311 dim++;
2932029312 }
2932129313 zend_binary_assign_op_obj_dim(obj, dim OPLINE_CC EXECUTE_DATA_CC);
29314+ if (UNEXPECTED(GC_DELREF(obj) == 0)) {
29315+ zend_objects_store_del(obj);
29316+ }
2932229317 } else if (EXPECTED(Z_TYPE_P(container) <= IS_FALSE)) {
2932329318 HashTable *ht;
2932429319 zend_uchar old_type;
@@ -40077,13 +40072,17 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_ASSIGN_DIM_OP_SPEC_CV_CONST_HA
4007740072 if (EXPECTED(Z_TYPE_P(container) == IS_OBJECT)) {
4007840073 zend_object *obj = Z_OBJ_P(container);
4007940074
40075+ GC_ADDREF(obj);
4008040076 dim = RT_CONSTANT(opline, opline->op2);
4008140077 if (IS_CONST == IS_CV && UNEXPECTED(Z_ISUNDEF_P(dim))) {
40082- ZEND_VM_TAIL_CALL(zend_assign_dim_op_obj_undef_helper_SPEC(obj ZEND_OPCODE_HANDLER_ARGS_PASSTHRU_CC) );
40078+ dim = ZVAL_UNDEFINED_OP2( );
4008340079 } else if (IS_CONST == IS_CONST && Z_EXTRA_P(dim) == ZEND_EXTRA_VALUE) {
4008440080 dim++;
4008540081 }
4008640082 zend_binary_assign_op_obj_dim(obj, dim OPLINE_CC EXECUTE_DATA_CC);
40083+ if (UNEXPECTED(GC_DELREF(obj) == 0)) {
40084+ zend_objects_store_del(obj);
40085+ }
4008740086 } else if (EXPECTED(Z_TYPE_P(container) <= IS_FALSE)) {
4008840087 HashTable *ht;
4008940088 zend_uchar old_type;
@@ -43816,13 +43815,17 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_ASSIGN_DIM_OP_SPEC_CV_TMPVAR_H
4381643815 if (EXPECTED(Z_TYPE_P(container) == IS_OBJECT)) {
4381743816 zend_object *obj = Z_OBJ_P(container);
4381843817
43818+ GC_ADDREF(obj);
4381943819 dim = _get_zval_ptr_var(opline->op2.var EXECUTE_DATA_CC);
4382043820 if ((IS_TMP_VAR|IS_VAR) == IS_CV && UNEXPECTED(Z_ISUNDEF_P(dim))) {
43821- ZEND_VM_TAIL_CALL(zend_assign_dim_op_obj_undef_helper_SPEC(obj ZEND_OPCODE_HANDLER_ARGS_PASSTHRU_CC) );
43821+ dim = ZVAL_UNDEFINED_OP2( );
4382243822 } else if ((IS_TMP_VAR|IS_VAR) == IS_CONST && Z_EXTRA_P(dim) == ZEND_EXTRA_VALUE) {
4382343823 dim++;
4382443824 }
4382543825 zend_binary_assign_op_obj_dim(obj, dim OPLINE_CC EXECUTE_DATA_CC);
43826+ if (UNEXPECTED(GC_DELREF(obj) == 0)) {
43827+ zend_objects_store_del(obj);
43828+ }
4382643829 } else if (EXPECTED(Z_TYPE_P(container) <= IS_FALSE)) {
4382743830 HashTable *ht;
4382843831 zend_uchar old_type;
@@ -46690,13 +46693,17 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_ASSIGN_DIM_OP_SPEC_CV_UNUSED_H
4669046693 if (EXPECTED(Z_TYPE_P(container) == IS_OBJECT)) {
4669146694 zend_object *obj = Z_OBJ_P(container);
4669246695
46696+ GC_ADDREF(obj);
4669346697 dim = NULL;
4669446698 if (IS_UNUSED == IS_CV && UNEXPECTED(Z_ISUNDEF_P(dim))) {
46695- ZEND_VM_TAIL_CALL(zend_assign_dim_op_obj_undef_helper_SPEC(obj ZEND_OPCODE_HANDLER_ARGS_PASSTHRU_CC) );
46699+ dim = ZVAL_UNDEFINED_OP2( );
4669646700 } else if (IS_UNUSED == IS_CONST && Z_EXTRA_P(dim) == ZEND_EXTRA_VALUE) {
4669746701 dim++;
4669846702 }
4669946703 zend_binary_assign_op_obj_dim(obj, dim OPLINE_CC EXECUTE_DATA_CC);
46704+ if (UNEXPECTED(GC_DELREF(obj) == 0)) {
46705+ zend_objects_store_del(obj);
46706+ }
4670046707 } else if (EXPECTED(Z_TYPE_P(container) <= IS_FALSE)) {
4670146708 HashTable *ht;
4670246709 zend_uchar old_type;
@@ -49059,13 +49066,17 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_ASSIGN_DIM_OP_SPEC_CV_CV_HANDL
4905949066 if (EXPECTED(Z_TYPE_P(container) == IS_OBJECT)) {
4906049067 zend_object *obj = Z_OBJ_P(container);
4906149068
49069+ GC_ADDREF(obj);
4906249070 dim = EX_VAR(opline->op2.var);
4906349071 if (IS_CV == IS_CV && UNEXPECTED(Z_ISUNDEF_P(dim))) {
49064- ZEND_VM_TAIL_CALL(zend_assign_dim_op_obj_undef_helper_SPEC(obj ZEND_OPCODE_HANDLER_ARGS_PASSTHRU_CC) );
49072+ dim = ZVAL_UNDEFINED_OP2( );
4906549073 } else if (IS_CV == IS_CONST && Z_EXTRA_P(dim) == ZEND_EXTRA_VALUE) {
4906649074 dim++;
4906749075 }
4906849076 zend_binary_assign_op_obj_dim(obj, dim OPLINE_CC EXECUTE_DATA_CC);
49077+ if (UNEXPECTED(GC_DELREF(obj) == 0)) {
49078+ zend_objects_store_del(obj);
49079+ }
4906949080 } else if (EXPECTED(Z_TYPE_P(container) <= IS_FALSE)) {
4907049081 HashTable *ht;
4907149082 zend_uchar old_type;
0 commit comments