@@ -2619,15 +2619,14 @@ ZEND_VM_HANDLER(23, ZEND_ASSIGN_DIM, VAR|CV, CONST|TMPVAR|UNUSED|NEXT|CV, SPEC(O
2619
2619
2620
2620
if (EXPECTED (Z_TYPE_P (object_ptr ) == IS_ARRAY )) {
2621
2621
ZEND_VM_C_LABEL (try_assign_dim_array ):
2622
+ value = GET_OP_DATA_ZVAL_PTR (BP_VAR_R );
2622
2623
SEPARATE_ARRAY (object_ptr );
2623
2624
if (OP2_TYPE == IS_UNUSED ) {
2624
- value = GET_OP_DATA_ZVAL_PTR (BP_VAR_R );
2625
2625
if (OP_DATA_TYPE == IS_CV || OP_DATA_TYPE == IS_VAR ) {
2626
2626
ZVAL_DEREF (value );
2627
2627
}
2628
2628
variable_ptr = zend_hash_next_index_insert (Z_ARRVAL_P (object_ptr ), value );
2629
2629
if (UNEXPECTED (variable_ptr == NULL )) {
2630
- FREE_OP_DATA ();
2631
2630
zend_cannot_add_element ();
2632
2631
ZEND_VM_C_GOTO (assign_dim_error );
2633
2632
} else if (OP_DATA_TYPE == IS_CV ) {
@@ -2656,7 +2655,6 @@ ZEND_VM_C_LABEL(try_assign_dim_array):
2656
2655
if (UNEXPECTED (variable_ptr == NULL )) {
2657
2656
ZEND_VM_C_GOTO (assign_dim_error );
2658
2657
}
2659
- value = GET_OP_DATA_ZVAL_PTR (BP_VAR_R );
2660
2658
value = zend_assign_to_variable (variable_ptr , value , OP_DATA_TYPE , EX_USES_STRICT_TYPES ());
2661
2659
}
2662
2660
if (UNEXPECTED (RETURN_VALUE_USED (opline ))) {
@@ -2707,7 +2705,7 @@ ZEND_VM_C_LABEL(try_assign_dim_array):
2707
2705
}
2708
2706
dim = GET_OP2_ZVAL_PTR (BP_VAR_R );
2709
2707
ZEND_VM_C_LABEL (assign_dim_error ):
2710
- FREE_UNFETCHED_OP_DATA ();
2708
+ FREE_OP_DATA ();
2711
2709
if (UNEXPECTED (RETURN_VALUE_USED (opline ))) {
2712
2710
ZVAL_NULL (EX_VAR (opline -> result .var ));
2713
2711
}
0 commit comments