@@ -2605,8 +2605,8 @@ static int ZEND_FASTCALL ZEND_RETURN_SPEC_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARG
26052605 } else {
26062606 if (IS_CONST == IS_CONST || IS_CONST == IS_TMP_VAR) {
26072607 ZVAL_COPY_VALUE(EX(return_value), retval_ptr);
2608- if (IS_CONST == IS_CONST && !Z_OPT_IMMUTABLE_P(EX(return_value)) ) {
2609- zval_opt_copy_ctor (EX(return_value));
2608+ if (IS_CONST == IS_CONST) {
2609+ zval_opt_copy_ctor_no_imm (EX(return_value));
26102610 }
26112611 } else if (Z_ISREF_P(retval_ptr)) {
26122612 ZVAL_DUP(EX(return_value), Z_REFVAL_P(retval_ptr));
@@ -2642,8 +2642,8 @@ static int ZEND_FASTCALL ZEND_RETURN_BY_REF_SPEC_CONST_HANDLER(ZEND_OPCODE_HAND
26422642 }
26432643 } else {
26442644 ZVAL_COPY_VALUE(EX(return_value), retval_ptr);
2645- if (IS_CONST != IS_TMP_VAR && !Z_OPT_IMMUTABLE_P(EX(return_value)) ) {
2646- zval_opt_copy_ctor (EX(return_value));
2645+ if (IS_CONST != IS_TMP_VAR) {
2646+ zval_opt_copy_ctor_no_imm (EX(return_value));
26472647 }
26482648 }
26492649 break;
@@ -2724,9 +2724,7 @@ static int ZEND_FASTCALL ZEND_SEND_VAL_SPEC_CONST_HANDLER(ZEND_OPCODE_HANDLER_A
27242724 if (IS_CONST == IS_CONST) {
27252725 /* Immutable arrays may be passed without copying ??? */
27262726 /* some internal functions may try to modify them !!! */
2727- if (!Z_OPT_IMMUTABLE_P(top)) {
2728- zval_opt_copy_ctor(top);
2729- }
2727+ zval_opt_copy_ctor_no_imm(top);
27302728 }
27312729 ZEND_VM_NEXT_OPCODE();
27322730}
@@ -3263,9 +3261,7 @@ static int ZEND_FASTCALL ZEND_QM_ASSIGN_SPEC_CONST_HANDLER(ZEND_OPCODE_HANDLER_
32633261
32643262 ZVAL_COPY_VALUE(EX_VAR(opline->result.var), value);
32653263 if (!0) {
3266- if (!Z_OPT_IMMUTABLE_P(EX_VAR(opline->result.var))) {
3267- zval_opt_copy_ctor(EX_VAR(opline->result.var));
3268- }
3264+ zval_opt_copy_ctor_no_imm(EX_VAR(opline->result.var));
32693265 }
32703266
32713267 CHECK_EXCEPTION();
@@ -3286,9 +3282,7 @@ static int ZEND_FASTCALL ZEND_QM_ASSIGN_VAR_SPEC_CONST_HANDLER(ZEND_OPCODE_HAND
32863282 } else {
32873283 ZVAL_COPY_VALUE(EX_VAR(opline->result.var), value);
32883284 if (!0) {
3289- if (!Z_OPT_IMMUTABLE_P(EX_VAR(opline->result.var))) {
3290- zval_opt_copy_ctor(EX_VAR(opline->result.var));
3291- }
3285+ zval_opt_copy_ctor_no_imm(EX_VAR(opline->result.var));
32923286 }
32933287 }
32943288
@@ -7746,8 +7740,8 @@ static int ZEND_FASTCALL ZEND_RETURN_SPEC_TMP_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
77467740 } else {
77477741 if (IS_TMP_VAR == IS_CONST || IS_TMP_VAR == IS_TMP_VAR) {
77487742 ZVAL_COPY_VALUE(EX(return_value), retval_ptr);
7749- if (IS_TMP_VAR == IS_CONST && !Z_OPT_IMMUTABLE_P(EX(return_value)) ) {
7750- zval_opt_copy_ctor (EX(return_value));
7743+ if (IS_TMP_VAR == IS_CONST) {
7744+ zval_opt_copy_ctor_no_imm (EX(return_value));
77517745 }
77527746 } else if (Z_ISREF_P(retval_ptr)) {
77537747 ZVAL_DUP(EX(return_value), Z_REFVAL_P(retval_ptr));
@@ -7783,8 +7777,8 @@ static int ZEND_FASTCALL ZEND_RETURN_BY_REF_SPEC_TMP_HANDLER(ZEND_OPCODE_HANDLE
77837777 }
77847778 } else {
77857779 ZVAL_COPY_VALUE(EX(return_value), retval_ptr);
7786- if (IS_TMP_VAR != IS_TMP_VAR && !Z_OPT_IMMUTABLE_P(EX(return_value)) ) {
7787- zval_opt_copy_ctor (EX(return_value));
7780+ if (IS_TMP_VAR != IS_TMP_VAR) {
7781+ zval_opt_copy_ctor_no_imm (EX(return_value));
77887782 }
77897783 }
77907784 break;
@@ -7865,9 +7859,7 @@ static int ZEND_FASTCALL ZEND_SEND_VAL_SPEC_TMP_HANDLER(ZEND_OPCODE_HANDLER_ARG
78657859 if (IS_TMP_VAR == IS_CONST) {
78667860 /* Immutable arrays may be passed without copying ??? */
78677861 /* some internal functions may try to modify them !!! */
7868- if (!Z_OPT_IMMUTABLE_P(top)) {
7869- zval_opt_copy_ctor(top);
7870- }
7862+ zval_opt_copy_ctor_no_imm(top);
78717863 }
78727864 ZEND_VM_NEXT_OPCODE();
78737865}
@@ -8434,9 +8426,7 @@ static int ZEND_FASTCALL ZEND_QM_ASSIGN_SPEC_TMP_HANDLER(ZEND_OPCODE_HANDLER_AR
84348426
84358427 ZVAL_COPY_VALUE(EX_VAR(opline->result.var), value);
84368428 if (!1) {
8437- if (!Z_OPT_IMMUTABLE_P(EX_VAR(opline->result.var))) {
8438- zval_opt_copy_ctor(EX_VAR(opline->result.var));
8439- }
8429+ zval_opt_copy_ctor_no_imm(EX_VAR(opline->result.var));
84408430 }
84418431
84428432 CHECK_EXCEPTION();
@@ -8457,9 +8447,7 @@ static int ZEND_FASTCALL ZEND_QM_ASSIGN_VAR_SPEC_TMP_HANDLER(ZEND_OPCODE_HANDLE
84578447 } else {
84588448 ZVAL_COPY_VALUE(EX_VAR(opline->result.var), value);
84598449 if (!1) {
8460- if (!Z_OPT_IMMUTABLE_P(EX_VAR(opline->result.var))) {
8461- zval_opt_copy_ctor(EX_VAR(opline->result.var));
8462- }
8450+ zval_opt_copy_ctor_no_imm(EX_VAR(opline->result.var));
84638451 }
84648452 }
84658453
@@ -12843,8 +12831,8 @@ static int ZEND_FASTCALL ZEND_RETURN_SPEC_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
1284312831 } else {
1284412832 if (IS_VAR == IS_CONST || IS_VAR == IS_TMP_VAR) {
1284512833 ZVAL_COPY_VALUE(EX(return_value), retval_ptr);
12846- if (IS_VAR == IS_CONST && !Z_OPT_IMMUTABLE_P(EX(return_value)) ) {
12847- zval_opt_copy_ctor (EX(return_value));
12834+ if (IS_VAR == IS_CONST) {
12835+ zval_opt_copy_ctor_no_imm (EX(return_value));
1284812836 }
1284912837 } else if (Z_ISREF_P(retval_ptr)) {
1285012838 ZVAL_DUP(EX(return_value), Z_REFVAL_P(retval_ptr));
@@ -12880,8 +12868,8 @@ static int ZEND_FASTCALL ZEND_RETURN_BY_REF_SPEC_VAR_HANDLER(ZEND_OPCODE_HANDLE
1288012868 }
1288112869 } else {
1288212870 ZVAL_COPY_VALUE(EX(return_value), retval_ptr);
12883- if (IS_VAR != IS_TMP_VAR && !Z_OPT_IMMUTABLE_P(EX(return_value)) ) {
12884- zval_opt_copy_ctor (EX(return_value));
12871+ if (IS_VAR != IS_TMP_VAR) {
12872+ zval_opt_copy_ctor_no_imm (EX(return_value));
1288512873 }
1288612874 }
1288712875 break;
@@ -12956,9 +12944,7 @@ static int ZEND_FASTCALL zend_send_by_var_helper_SPEC_VAR(ZEND_OPCODE_HANDLER_AR
1295612944 ZVAL_COPY_VALUE(top, Z_REFVAL_P(varptr));
1295712945 /* Immutable arrays may be passed without copying ??? */
1295812946 /* some internal functions may try to modify them !!! */
12959- if (!Z_OPT_IMMUTABLE_P(top)) {
12960- zval_opt_copy_ctor(top);
12961- }
12947+ zval_opt_copy_ctor_no_imm(top);
1296212948 zval_ptr_dtor_nogc(free_op1.var);
1296312949 } else {
1296412950 ZVAL_COPY_VALUE(top, varptr);
@@ -13082,9 +13068,7 @@ static int ZEND_FASTCALL ZEND_SEND_VAR_SPEC_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARG
1308213068 ZVAL_COPY_VALUE(top, Z_REFVAL_P(varptr));
1308313069 /* Immutable arrays may be passed without copying ??? */
1308413070 /* some internal functions may try to modify them !!! */
13085- if (!Z_OPT_IMMUTABLE_P(top)) {
13086- zval_opt_copy_ctor(top);
13087- }
13071+ zval_opt_copy_ctor_no_imm(top);
1308813072 zval_ptr_dtor_nogc(free_op1.var);
1308913073 } else {
1309013074 ZVAL_COPY_VALUE(top, varptr);
@@ -13780,9 +13764,7 @@ static int ZEND_FASTCALL ZEND_QM_ASSIGN_SPEC_VAR_HANDLER(ZEND_OPCODE_HANDLER_AR
1378013764
1378113765 ZVAL_COPY_VALUE(EX_VAR(opline->result.var), value);
1378213766 if (!0) {
13783- if (!Z_OPT_IMMUTABLE_P(EX_VAR(opline->result.var))) {
13784- zval_opt_copy_ctor(EX_VAR(opline->result.var));
13785- }
13767+ zval_opt_copy_ctor_no_imm(EX_VAR(opline->result.var));
1378613768 }
1378713769 zval_ptr_dtor_nogc(free_op1.var);
1378813770 CHECK_EXCEPTION();
@@ -13803,9 +13785,7 @@ static int ZEND_FASTCALL ZEND_QM_ASSIGN_VAR_SPEC_VAR_HANDLER(ZEND_OPCODE_HANDLE
1380313785 } else {
1380413786 ZVAL_COPY_VALUE(EX_VAR(opline->result.var), value);
1380513787 if (!0) {
13806- if (!Z_OPT_IMMUTABLE_P(EX_VAR(opline->result.var))) {
13807- zval_opt_copy_ctor(EX_VAR(opline->result.var));
13808- }
13788+ zval_opt_copy_ctor_no_imm(EX_VAR(opline->result.var));
1380913789 }
1381013790 }
1381113791
@@ -29955,8 +29935,8 @@ static int ZEND_FASTCALL ZEND_RETURN_SPEC_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
2995529935 } else {
2995629936 if (IS_CV == IS_CONST || IS_CV == IS_TMP_VAR) {
2995729937 ZVAL_COPY_VALUE(EX(return_value), retval_ptr);
29958- if (IS_CV == IS_CONST && !Z_OPT_IMMUTABLE_P(EX(return_value)) ) {
29959- zval_opt_copy_ctor (EX(return_value));
29938+ if (IS_CV == IS_CONST) {
29939+ zval_opt_copy_ctor_no_imm (EX(return_value));
2996029940 }
2996129941 } else if (Z_ISREF_P(retval_ptr)) {
2996229942 ZVAL_DUP(EX(return_value), Z_REFVAL_P(retval_ptr));
@@ -29992,8 +29972,8 @@ static int ZEND_FASTCALL ZEND_RETURN_BY_REF_SPEC_CV_HANDLER(ZEND_OPCODE_HANDLER
2999229972 }
2999329973 } else {
2999429974 ZVAL_COPY_VALUE(EX(return_value), retval_ptr);
29995- if (IS_CV != IS_TMP_VAR && !Z_OPT_IMMUTABLE_P(EX(return_value)) ) {
29996- zval_opt_copy_ctor (EX(return_value));
29975+ if (IS_CV != IS_TMP_VAR) {
29976+ zval_opt_copy_ctor_no_imm (EX(return_value));
2999729977 }
2999829978 }
2999929979 break;
@@ -30067,9 +30047,7 @@ static int ZEND_FASTCALL zend_send_by_var_helper_SPEC_CV(ZEND_OPCODE_HANDLER_ARG
3006730047 ZVAL_COPY_VALUE(top, Z_REFVAL_P(varptr));
3006830048 /* Immutable arrays may be passed without copying ??? */
3006930049 /* some internal functions may try to modify them !!! */
30070- if (!Z_OPT_IMMUTABLE_P(top)) {
30071- zval_opt_copy_ctor(top);
30072- }
30050+ zval_opt_copy_ctor_no_imm(top);
3007330051
3007430052 } else {
3007530053 ZVAL_COPY_VALUE(top, varptr);
@@ -30192,9 +30170,7 @@ static int ZEND_FASTCALL ZEND_SEND_VAR_SPEC_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS
3019230170 ZVAL_COPY_VALUE(top, Z_REFVAL_P(varptr));
3019330171 /* Immutable arrays may be passed without copying ??? */
3019430172 /* some internal functions may try to modify them !!! */
30195- if (!Z_OPT_IMMUTABLE_P(top)) {
30196- zval_opt_copy_ctor(top);
30197- }
30173+ zval_opt_copy_ctor_no_imm(top);
3019830174
3019930175 } else {
3020030176 ZVAL_COPY_VALUE(top, varptr);
@@ -30737,9 +30713,7 @@ static int ZEND_FASTCALL ZEND_QM_ASSIGN_SPEC_CV_HANDLER(ZEND_OPCODE_HANDLER_ARG
3073730713
3073830714 ZVAL_COPY_VALUE(EX_VAR(opline->result.var), value);
3073930715 if (!0) {
30740- if (!Z_OPT_IMMUTABLE_P(EX_VAR(opline->result.var))) {
30741- zval_opt_copy_ctor(EX_VAR(opline->result.var));
30742- }
30716+ zval_opt_copy_ctor_no_imm(EX_VAR(opline->result.var));
3074330717 }
3074430718
3074530719 CHECK_EXCEPTION();
@@ -30760,9 +30734,7 @@ static int ZEND_FASTCALL ZEND_QM_ASSIGN_VAR_SPEC_CV_HANDLER(ZEND_OPCODE_HANDLER
3076030734 } else {
3076130735 ZVAL_COPY_VALUE(EX_VAR(opline->result.var), value);
3076230736 if (!0) {
30763- if (!Z_OPT_IMMUTABLE_P(EX_VAR(opline->result.var))) {
30764- zval_opt_copy_ctor(EX_VAR(opline->result.var));
30765- }
30737+ zval_opt_copy_ctor_no_imm(EX_VAR(opline->result.var));
3076630738 }
3076730739 }
3076830740
0 commit comments