summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Zend/zend.h4
-rw-r--r--Zend/zend_execute.c19
-rw-r--r--Zend/zend_vm_def.h48
-rw-r--r--Zend/zend_vm_execute.h516
4 files changed, 288 insertions, 299 deletions
diff --git a/Zend/zend.h b/Zend/zend.h
index 922d937eb8..27caadc51c 100644
--- a/Zend/zend.h
+++ b/Zend/zend.h
@@ -774,9 +774,7 @@ END_EXTERN_C()
} while (0)
#define READY_TO_DESTROY(zv) \
- (Z_REFCOUNT_P(zv) == 1 && \
- (Z_TYPE_P(zv) != IS_OBJECT || \
- zend_objects_store_get_refcount(zv TSRMLS_CC) == 1))
+ (Z_REFCOUNTED_P(zv) && Z_REFCOUNT_P(zv) == 1)
#define ZEND_MAX_RESERVED_RESOURCES 4
diff --git a/Zend/zend_execute.c b/Zend/zend_execute.c
index a2d4be204a..955249acb4 100644
--- a/Zend/zend_execute.c
+++ b/Zend/zend_execute.c
@@ -113,20 +113,11 @@ static zend_always_inline void zend_pzval_unlock_free_func(zval *z TSRMLS_DC)
#define PZVAL_LOCK(z) if (Z_REFCOUNTED_P(z)) Z_ADDREF_P((z))
#define SELECTIVE_PZVAL_LOCK(pzv, opline) if (RETURN_VALUE_USED(opline)) { PZVAL_LOCK(pzv); }
-#define EXTRACT_ZVAL_PTR(t) do { \
- temp_variable *__t = (t); \
- __t->var.ptr = *__t->var.ptr_ptr; \
- __t->var.ptr_ptr = &__t->var.ptr; \
- if (!PZVAL_IS_REF(__t->var.ptr) && \
- Z_REFCOUNT_P(__t->var.ptr) > 2) { \
- SEPARATE_ZVAL(__t->var.ptr_ptr); \
- } \
- } while (0)
-
-#define AI_SET_PTR(t, val) do { \
- temp_variable *__t = (t); \
- __t->var.ptr = (val); \
- __t->var.ptr_ptr = &__t->var.ptr; \
+#define EXTRACT_ZVAL_PTR(zv) do { \
+ zval *__zv = (zv); \
+ if (Z_TYPE_P(__zv) == IS_INDIRECT) { \
+ ZVAL_COPY_VALUE(__zv, Z_INDIRECT_P(__zv)); \
+ } \
} while (0)
#define FREE_OP(should_free) \
diff --git a/Zend/zend_vm_def.h b/Zend/zend_vm_def.h
index 8c272a5494..11f3e4c2fc 100644
--- a/Zend/zend_vm_def.h
+++ b/Zend/zend_vm_def.h
@@ -1188,9 +1188,9 @@ ZEND_VM_HANDLER(84, ZEND_FETCH_DIM_W, VAR|CV, CONST|TMP|VAR|UNUSED|CV)
}
zend_fetch_dimension_address(EX_VAR(opline->result.var), container, GET_OP2_ZVAL_PTR(BP_VAR_R), OP2_TYPE, BP_VAR_W TSRMLS_CC);
FREE_OP2();
-//??? if (OP1_TYPE == IS_VAR && OP1_FREE && READY_TO_DESTROY(free_op1.var)) {
-//??? EXTRACT_ZVAL_PTR(EX_VAR(opline->result.var));
-//??? }
+ if (OP1_TYPE == IS_VAR && OP1_FREE && READY_TO_DESTROY(free_op1.var)) {
+ EXTRACT_ZVAL_PTR(EX_VAR(opline->result.var));
+ }
FREE_OP1_VAR_PTR();
@@ -1230,9 +1230,9 @@ ZEND_VM_HANDLER(87, ZEND_FETCH_DIM_RW, VAR|CV, CONST|TMP|VAR|UNUSED|CV)
}
zend_fetch_dimension_address(EX_VAR(opline->result.var), container, GET_OP2_ZVAL_PTR(BP_VAR_R), OP2_TYPE, BP_VAR_RW TSRMLS_CC);
FREE_OP2();
-//??? if (OP1_TYPE == IS_VAR && OP1_FREE && READY_TO_DESTROY(free_op1.var)) {
-//??? EXTRACT_ZVAL_PTR(&EX_T(opline->result.var));
-//??? }
+ if (OP1_TYPE == IS_VAR && OP1_FREE && READY_TO_DESTROY(free_op1.var)) {
+ EXTRACT_ZVAL_PTR(EX_VAR(opline->result.var));
+ }
FREE_OP1_VAR_PTR();
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
@@ -1267,9 +1267,9 @@ ZEND_VM_HANDLER(93, ZEND_FETCH_DIM_FUNC_ARG, VAR|CV, CONST|TMP|VAR|UNUSED|CV)
zend_error_noreturn(E_ERROR, "Cannot use string offset as an array");
}
zend_fetch_dimension_address(EX_VAR(opline->result.var), container, GET_OP2_ZVAL_PTR(BP_VAR_R), OP2_TYPE, BP_VAR_W TSRMLS_CC);
-//??? if (OP1_TYPE == IS_VAR && OP1_FREE && READY_TO_DESTROY(free_op1.var)) {
-//??? EXTRACT_ZVAL_PTR(&EX_T(opline->result.var));
-//??? }
+ if (OP1_TYPE == IS_VAR && OP1_FREE && READY_TO_DESTROY(free_op1.var)) {
+ EXTRACT_ZVAL_PTR(EX_VAR(opline->result.var));
+ }
FREE_OP2();
FREE_OP1_VAR_PTR();
} else {
@@ -1302,9 +1302,9 @@ ZEND_VM_HANDLER(96, ZEND_FETCH_DIM_UNSET, VAR|CV, CONST|TMP|VAR|CV)
}
zend_fetch_dimension_address(EX_VAR(opline->result.var), container, GET_OP2_ZVAL_PTR(BP_VAR_R), OP2_TYPE, BP_VAR_UNSET TSRMLS_CC);
FREE_OP2();
-//??? if (OP1_TYPE == IS_VAR && OP1_FREE && READY_TO_DESTROY(free_op1.var)) {
-//??? EXTRACT_ZVAL_PTR(&EX_T(opline->result.var));
-//??? }
+ if (OP1_TYPE == IS_VAR && OP1_FREE && READY_TO_DESTROY(free_op1.var)) {
+ EXTRACT_ZVAL_PTR(EX_VAR(opline->result.var));
+ }
FREE_OP1_VAR_PTR();
if (UNEXPECTED(Z_TYPE_P(EX_VAR(opline->result.var)) == IS_STR_OFFSET)) {
zend_error_noreturn(E_ERROR, "Cannot unset string offsets");
@@ -1402,9 +1402,9 @@ ZEND_VM_HANDLER(85, ZEND_FETCH_OBJ_W, VAR|UNUSED|CV, CONST|TMP|VAR|CV)
FREE_OP2();
//??? }
-//??? if (OP1_TYPE == IS_VAR && OP1_FREE && READY_TO_DESTROY(free_op1.var)) {
-//??? EXTRACT_ZVAL_PTR(&EX_T(opline->result.var));
-//??? }
+ if (OP1_TYPE == IS_VAR && OP1_FREE && READY_TO_DESTROY(free_op1.var)) {
+ EXTRACT_ZVAL_PTR(EX_VAR(opline->result.var));
+ }
FREE_OP1_VAR_PTR();
/* We are going to assign the result by reference */
@@ -1453,9 +1453,9 @@ ZEND_VM_HANDLER(88, ZEND_FETCH_OBJ_RW, VAR|UNUSED|CV, CONST|TMP|VAR|CV)
FREE_OP2();
//??? }
-//??? if (OP1_TYPE == IS_VAR && OP1_FREE && READY_TO_DESTROY(free_op1.var)) {
-//??? EXTRACT_ZVAL_PTR(&EX_T(opline->result.var));
-//??? }
+ if (OP1_TYPE == IS_VAR && OP1_FREE && READY_TO_DESTROY(free_op1.var)) {
+ EXTRACT_ZVAL_PTR(EX_VAR(opline->result.var));
+ }
FREE_OP1_VAR_PTR();
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
@@ -1530,9 +1530,9 @@ ZEND_VM_HANDLER(94, ZEND_FETCH_OBJ_FUNC_ARG, VAR|UNUSED|CV, CONST|TMP|VAR|CV)
FREE_OP2();
//??? }
-//??? if (OP1_TYPE == IS_VAR && OP1_FREE && READY_TO_DESTROY(free_op1.var)) {
-//??? EXTRACT_ZVAL_PTR(&EX_T(opline->result.var));
-//??? }
+ if (OP1_TYPE == IS_VAR && OP1_FREE && READY_TO_DESTROY(free_op1.var)) {
+ EXTRACT_ZVAL_PTR(EX_VAR(opline->result.var));
+ }
FREE_OP1_VAR_PTR();
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
@@ -1567,9 +1567,9 @@ ZEND_VM_HANDLER(97, ZEND_FETCH_OBJ_UNSET, VAR|UNUSED|CV, CONST|TMP|VAR|CV)
FREE_OP2();
//??? }
-//??? if (OP1_TYPE == IS_VAR && OP1_FREE && READY_TO_DESTROY(free_op1.var)) {
-//??? EXTRACT_ZVAL_PTR(&EX_T(opline->result.var));
-//??? }
+ if (OP1_TYPE == IS_VAR && OP1_FREE && READY_TO_DESTROY(free_op1.var)) {
+ EXTRACT_ZVAL_PTR(EX_VAR(opline->result.var));
+ }
FREE_OP1_VAR_PTR();
retval_ptr = EX_VAR(opline->result.var);
diff --git a/Zend/zend_vm_execute.h b/Zend/zend_vm_execute.h
index a1779caf77..cbe5aa07ac 100644
--- a/Zend/zend_vm_execute.h
+++ b/Zend/zend_vm_execute.h
@@ -14517,9 +14517,9 @@ static int ZEND_FASTCALL ZEND_FETCH_DIM_W_SPEC_VAR_CONST_HANDLER(ZEND_OPCODE_HA
}
zend_fetch_dimension_address(EX_VAR(opline->result.var), container, opline->op2.zv, IS_CONST, BP_VAR_W TSRMLS_CC);
-//??? if (IS_VAR == IS_VAR && (free_op1.var != NULL) && READY_TO_DESTROY(free_op1.var)) {
-//??? EXTRACT_ZVAL_PTR(EX_VAR(opline->result.var));
-//??? }
+ if (IS_VAR == IS_VAR && (free_op1.var != NULL) && READY_TO_DESTROY(free_op1.var)) {
+ EXTRACT_ZVAL_PTR(EX_VAR(opline->result.var));
+ }
if (free_op1.var) {zval_ptr_dtor_nogc(free_op1.var);};
@@ -14559,9 +14559,9 @@ static int ZEND_FASTCALL ZEND_FETCH_DIM_RW_SPEC_VAR_CONST_HANDLER(ZEND_OPCODE_H
}
zend_fetch_dimension_address(EX_VAR(opline->result.var), container, opline->op2.zv, IS_CONST, BP_VAR_RW TSRMLS_CC);
-//??? if (IS_VAR == IS_VAR && (free_op1.var != NULL) && READY_TO_DESTROY(free_op1.var)) {
-//??? EXTRACT_ZVAL_PTR(&EX_T(opline->result.var));
-//??? }
+ if (IS_VAR == IS_VAR && (free_op1.var != NULL) && READY_TO_DESTROY(free_op1.var)) {
+ EXTRACT_ZVAL_PTR(EX_VAR(opline->result.var));
+ }
if (free_op1.var) {zval_ptr_dtor_nogc(free_op1.var);};
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
@@ -14596,9 +14596,9 @@ static int ZEND_FASTCALL ZEND_FETCH_DIM_FUNC_ARG_SPEC_VAR_CONST_HANDLER(ZEND_OP
zend_error_noreturn(E_ERROR, "Cannot use string offset as an array");
}
zend_fetch_dimension_address(EX_VAR(opline->result.var), container, opline->op2.zv, IS_CONST, BP_VAR_W TSRMLS_CC);
-//??? if (IS_VAR == IS_VAR && (free_op1.var != NULL) && READY_TO_DESTROY(free_op1.var)) {
-//??? EXTRACT_ZVAL_PTR(&EX_T(opline->result.var));
-//??? }
+ if (IS_VAR == IS_VAR && (free_op1.var != NULL) && READY_TO_DESTROY(free_op1.var)) {
+ EXTRACT_ZVAL_PTR(EX_VAR(opline->result.var));
+ }
if (free_op1.var) {zval_ptr_dtor_nogc(free_op1.var);};
} else {
@@ -14631,9 +14631,9 @@ static int ZEND_FASTCALL ZEND_FETCH_DIM_UNSET_SPEC_VAR_CONST_HANDLER(ZEND_OPCOD
}
zend_fetch_dimension_address(EX_VAR(opline->result.var), container, opline->op2.zv, IS_CONST, BP_VAR_UNSET TSRMLS_CC);
-//??? if (IS_VAR == IS_VAR && (free_op1.var != NULL) && READY_TO_DESTROY(free_op1.var)) {
-//??? EXTRACT_ZVAL_PTR(&EX_T(opline->result.var));
-//??? }
+ if (IS_VAR == IS_VAR && (free_op1.var != NULL) && READY_TO_DESTROY(free_op1.var)) {
+ EXTRACT_ZVAL_PTR(EX_VAR(opline->result.var));
+ }
if (free_op1.var) {zval_ptr_dtor_nogc(free_op1.var);};
if (UNEXPECTED(Z_TYPE_P(EX_VAR(opline->result.var)) == IS_STR_OFFSET)) {
zend_error_noreturn(E_ERROR, "Cannot unset string offsets");
@@ -14731,9 +14731,9 @@ static int ZEND_FASTCALL ZEND_FETCH_OBJ_W_SPEC_VAR_CONST_HANDLER(ZEND_OPCODE_HA
//??? }
-//??? if (IS_VAR == IS_VAR && (free_op1.var != NULL) && READY_TO_DESTROY(free_op1.var)) {
-//??? EXTRACT_ZVAL_PTR(&EX_T(opline->result.var));
-//??? }
+ if (IS_VAR == IS_VAR && (free_op1.var != NULL) && READY_TO_DESTROY(free_op1.var)) {
+ EXTRACT_ZVAL_PTR(EX_VAR(opline->result.var));
+ }
if (free_op1.var) {zval_ptr_dtor_nogc(free_op1.var);};
/* We are going to assign the result by reference */
@@ -14782,9 +14782,9 @@ static int ZEND_FASTCALL ZEND_FETCH_OBJ_RW_SPEC_VAR_CONST_HANDLER(ZEND_OPCODE_H
//??? }
-//??? if (IS_VAR == IS_VAR && (free_op1.var != NULL) && READY_TO_DESTROY(free_op1.var)) {
-//??? EXTRACT_ZVAL_PTR(&EX_T(opline->result.var));
-//??? }
+ if (IS_VAR == IS_VAR && (free_op1.var != NULL) && READY_TO_DESTROY(free_op1.var)) {
+ EXTRACT_ZVAL_PTR(EX_VAR(opline->result.var));
+ }
if (free_op1.var) {zval_ptr_dtor_nogc(free_op1.var);};
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
@@ -14859,9 +14859,9 @@ static int ZEND_FASTCALL ZEND_FETCH_OBJ_FUNC_ARG_SPEC_VAR_CONST_HANDLER(ZEND_OP
//??? }
-//??? if (IS_VAR == IS_VAR && (free_op1.var != NULL) && READY_TO_DESTROY(free_op1.var)) {
-//??? EXTRACT_ZVAL_PTR(&EX_T(opline->result.var));
-//??? }
+ if (IS_VAR == IS_VAR && (free_op1.var != NULL) && READY_TO_DESTROY(free_op1.var)) {
+ EXTRACT_ZVAL_PTR(EX_VAR(opline->result.var));
+ }
if (free_op1.var) {zval_ptr_dtor_nogc(free_op1.var);};
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
@@ -14896,9 +14896,9 @@ static int ZEND_FASTCALL ZEND_FETCH_OBJ_UNSET_SPEC_VAR_CONST_HANDLER(ZEND_OPCOD
//??? }
-//??? if (IS_VAR == IS_VAR && (free_op1.var != NULL) && READY_TO_DESTROY(free_op1.var)) {
-//??? EXTRACT_ZVAL_PTR(&EX_T(opline->result.var));
-//??? }
+ if (IS_VAR == IS_VAR && (free_op1.var != NULL) && READY_TO_DESTROY(free_op1.var)) {
+ EXTRACT_ZVAL_PTR(EX_VAR(opline->result.var));
+ }
if (free_op1.var) {zval_ptr_dtor_nogc(free_op1.var);};
retval_ptr = EX_VAR(opline->result.var);
@@ -16803,9 +16803,9 @@ static int ZEND_FASTCALL ZEND_FETCH_DIM_W_SPEC_VAR_TMP_HANDLER(ZEND_OPCODE_HAND
}
zend_fetch_dimension_address(EX_VAR(opline->result.var), container, _get_zval_ptr_tmp(opline->op2.var, execute_data, &free_op2 TSRMLS_CC), IS_TMP_VAR, BP_VAR_W TSRMLS_CC);
zval_dtor(free_op2.var);
-//??? if (IS_VAR == IS_VAR && (free_op1.var != NULL) && READY_TO_DESTROY(free_op1.var)) {
-//??? EXTRACT_ZVAL_PTR(EX_VAR(opline->result.var));
-//??? }
+ if (IS_VAR == IS_VAR && (free_op1.var != NULL) && READY_TO_DESTROY(free_op1.var)) {
+ EXTRACT_ZVAL_PTR(EX_VAR(opline->result.var));
+ }
if (free_op1.var) {zval_ptr_dtor_nogc(free_op1.var);};
@@ -16845,9 +16845,9 @@ static int ZEND_FASTCALL ZEND_FETCH_DIM_RW_SPEC_VAR_TMP_HANDLER(ZEND_OPCODE_HAN
}
zend_fetch_dimension_address(EX_VAR(opline->result.var), container, _get_zval_ptr_tmp(opline->op2.var, execute_data, &free_op2 TSRMLS_CC), IS_TMP_VAR, BP_VAR_RW TSRMLS_CC);
zval_dtor(free_op2.var);
-//??? if (IS_VAR == IS_VAR && (free_op1.var != NULL) && READY_TO_DESTROY(free_op1.var)) {
-//??? EXTRACT_ZVAL_PTR(&EX_T(opline->result.var));
-//??? }
+ if (IS_VAR == IS_VAR && (free_op1.var != NULL) && READY_TO_DESTROY(free_op1.var)) {
+ EXTRACT_ZVAL_PTR(EX_VAR(opline->result.var));
+ }
if (free_op1.var) {zval_ptr_dtor_nogc(free_op1.var);};
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
@@ -16882,9 +16882,9 @@ static int ZEND_FASTCALL ZEND_FETCH_DIM_FUNC_ARG_SPEC_VAR_TMP_HANDLER(ZEND_OPCO
zend_error_noreturn(E_ERROR, "Cannot use string offset as an array");
}
zend_fetch_dimension_address(EX_VAR(opline->result.var), container, _get_zval_ptr_tmp(opline->op2.var, execute_data, &free_op2 TSRMLS_CC), IS_TMP_VAR, BP_VAR_W TSRMLS_CC);
-//??? if (IS_VAR == IS_VAR && (free_op1.var != NULL) && READY_TO_DESTROY(free_op1.var)) {
-//??? EXTRACT_ZVAL_PTR(&EX_T(opline->result.var));
-//??? }
+ if (IS_VAR == IS_VAR && (free_op1.var != NULL) && READY_TO_DESTROY(free_op1.var)) {
+ EXTRACT_ZVAL_PTR(EX_VAR(opline->result.var));
+ }
zval_dtor(free_op2.var);
if (free_op1.var) {zval_ptr_dtor_nogc(free_op1.var);};
} else {
@@ -16917,9 +16917,9 @@ static int ZEND_FASTCALL ZEND_FETCH_DIM_UNSET_SPEC_VAR_TMP_HANDLER(ZEND_OPCODE_
}
zend_fetch_dimension_address(EX_VAR(opline->result.var), container, _get_zval_ptr_tmp(opline->op2.var, execute_data, &free_op2 TSRMLS_CC), IS_TMP_VAR, BP_VAR_UNSET TSRMLS_CC);
zval_dtor(free_op2.var);
-//??? if (IS_VAR == IS_VAR && (free_op1.var != NULL) && READY_TO_DESTROY(free_op1.var)) {
-//??? EXTRACT_ZVAL_PTR(&EX_T(opline->result.var));
-//??? }
+ if (IS_VAR == IS_VAR && (free_op1.var != NULL) && READY_TO_DESTROY(free_op1.var)) {
+ EXTRACT_ZVAL_PTR(EX_VAR(opline->result.var));
+ }
if (free_op1.var) {zval_ptr_dtor_nogc(free_op1.var);};
if (UNEXPECTED(Z_TYPE_P(EX_VAR(opline->result.var)) == IS_STR_OFFSET)) {
zend_error_noreturn(E_ERROR, "Cannot unset string offsets");
@@ -17017,9 +17017,9 @@ static int ZEND_FASTCALL ZEND_FETCH_OBJ_W_SPEC_VAR_TMP_HANDLER(ZEND_OPCODE_HAND
zval_dtor(free_op2.var);
//??? }
-//??? if (IS_VAR == IS_VAR && (free_op1.var != NULL) && READY_TO_DESTROY(free_op1.var)) {
-//??? EXTRACT_ZVAL_PTR(&EX_T(opline->result.var));
-//??? }
+ if (IS_VAR == IS_VAR && (free_op1.var != NULL) && READY_TO_DESTROY(free_op1.var)) {
+ EXTRACT_ZVAL_PTR(EX_VAR(opline->result.var));
+ }
if (free_op1.var) {zval_ptr_dtor_nogc(free_op1.var);};
/* We are going to assign the result by reference */
@@ -17068,9 +17068,9 @@ static int ZEND_FASTCALL ZEND_FETCH_OBJ_RW_SPEC_VAR_TMP_HANDLER(ZEND_OPCODE_HAN
zval_dtor(free_op2.var);
//??? }
-//??? if (IS_VAR == IS_VAR && (free_op1.var != NULL) && READY_TO_DESTROY(free_op1.var)) {
-//??? EXTRACT_ZVAL_PTR(&EX_T(opline->result.var));
-//??? }
+ if (IS_VAR == IS_VAR && (free_op1.var != NULL) && READY_TO_DESTROY(free_op1.var)) {
+ EXTRACT_ZVAL_PTR(EX_VAR(opline->result.var));
+ }
if (free_op1.var) {zval_ptr_dtor_nogc(free_op1.var);};
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
@@ -17145,9 +17145,9 @@ static int ZEND_FASTCALL ZEND_FETCH_OBJ_FUNC_ARG_SPEC_VAR_TMP_HANDLER(ZEND_OPCO
zval_dtor(free_op2.var);
//??? }
-//??? if (IS_VAR == IS_VAR && (free_op1.var != NULL) && READY_TO_DESTROY(free_op1.var)) {
-//??? EXTRACT_ZVAL_PTR(&EX_T(opline->result.var));
-//??? }
+ if (IS_VAR == IS_VAR && (free_op1.var != NULL) && READY_TO_DESTROY(free_op1.var)) {
+ EXTRACT_ZVAL_PTR(EX_VAR(opline->result.var));
+ }
if (free_op1.var) {zval_ptr_dtor_nogc(free_op1.var);};
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
@@ -17182,9 +17182,9 @@ static int ZEND_FASTCALL ZEND_FETCH_OBJ_UNSET_SPEC_VAR_TMP_HANDLER(ZEND_OPCODE_
zval_dtor(free_op2.var);
//??? }
-//??? if (IS_VAR == IS_VAR && (free_op1.var != NULL) && READY_TO_DESTROY(free_op1.var)) {
-//??? EXTRACT_ZVAL_PTR(&EX_T(opline->result.var));
-//??? }
+ if (IS_VAR == IS_VAR && (free_op1.var != NULL) && READY_TO_DESTROY(free_op1.var)) {
+ EXTRACT_ZVAL_PTR(EX_VAR(opline->result.var));
+ }
if (free_op1.var) {zval_ptr_dtor_nogc(free_op1.var);};
retval_ptr = EX_VAR(opline->result.var);
@@ -18986,9 +18986,9 @@ static int ZEND_FASTCALL ZEND_FETCH_DIM_W_SPEC_VAR_VAR_HANDLER(ZEND_OPCODE_HAND
}
zend_fetch_dimension_address(EX_VAR(opline->result.var), container, _get_zval_ptr_var(opline->op2.var, execute_data, &free_op2 TSRMLS_CC), IS_VAR, BP_VAR_W TSRMLS_CC);
zval_ptr_dtor_nogc(free_op2.var);
-//??? if (IS_VAR == IS_VAR && (free_op1.var != NULL) && READY_TO_DESTROY(free_op1.var)) {
-//??? EXTRACT_ZVAL_PTR(EX_VAR(opline->result.var));
-//??? }
+ if (IS_VAR == IS_VAR && (free_op1.var != NULL) && READY_TO_DESTROY(free_op1.var)) {
+ EXTRACT_ZVAL_PTR(EX_VAR(opline->result.var));
+ }
if (free_op1.var) {zval_ptr_dtor_nogc(free_op1.var);};
@@ -19028,9 +19028,9 @@ static int ZEND_FASTCALL ZEND_FETCH_DIM_RW_SPEC_VAR_VAR_HANDLER(ZEND_OPCODE_HAN
}
zend_fetch_dimension_address(EX_VAR(opline->result.var), container, _get_zval_ptr_var(opline->op2.var, execute_data, &free_op2 TSRMLS_CC), IS_VAR, BP_VAR_RW TSRMLS_CC);
zval_ptr_dtor_nogc(free_op2.var);
-//??? if (IS_VAR == IS_VAR && (free_op1.var != NULL) && READY_TO_DESTROY(free_op1.var)) {
-//??? EXTRACT_ZVAL_PTR(&EX_T(opline->result.var));
-//??? }
+ if (IS_VAR == IS_VAR && (free_op1.var != NULL) && READY_TO_DESTROY(free_op1.var)) {
+ EXTRACT_ZVAL_PTR(EX_VAR(opline->result.var));
+ }
if (free_op1.var) {zval_ptr_dtor_nogc(free_op1.var);};
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
@@ -19065,9 +19065,9 @@ static int ZEND_FASTCALL ZEND_FETCH_DIM_FUNC_ARG_SPEC_VAR_VAR_HANDLER(ZEND_OPCO
zend_error_noreturn(E_ERROR, "Cannot use string offset as an array");
}
zend_fetch_dimension_address(EX_VAR(opline->result.var), container, _get_zval_ptr_var(opline->op2.var, execute_data, &free_op2 TSRMLS_CC), IS_VAR, BP_VAR_W TSRMLS_CC);
-//??? if (IS_VAR == IS_VAR && (free_op1.var != NULL) && READY_TO_DESTROY(free_op1.var)) {
-//??? EXTRACT_ZVAL_PTR(&EX_T(opline->result.var));
-//??? }
+ if (IS_VAR == IS_VAR && (free_op1.var != NULL) && READY_TO_DESTROY(free_op1.var)) {
+ EXTRACT_ZVAL_PTR(EX_VAR(opline->result.var));
+ }
zval_ptr_dtor_nogc(free_op2.var);
if (free_op1.var) {zval_ptr_dtor_nogc(free_op1.var);};
} else {
@@ -19100,9 +19100,9 @@ static int ZEND_FASTCALL ZEND_FETCH_DIM_UNSET_SPEC_VAR_VAR_HANDLER(ZEND_OPCODE_
}
zend_fetch_dimension_address(EX_VAR(opline->result.var), container, _get_zval_ptr_var(opline->op2.var, execute_data, &free_op2 TSRMLS_CC), IS_VAR, BP_VAR_UNSET TSRMLS_CC);
zval_ptr_dtor_nogc(free_op2.var);
-//??? if (IS_VAR == IS_VAR && (free_op1.var != NULL) && READY_TO_DESTROY(free_op1.var)) {
-//??? EXTRACT_ZVAL_PTR(&EX_T(opline->result.var));
-//??? }
+ if (IS_VAR == IS_VAR && (free_op1.var != NULL) && READY_TO_DESTROY(free_op1.var)) {
+ EXTRACT_ZVAL_PTR(EX_VAR(opline->result.var));
+ }
if (free_op1.var) {zval_ptr_dtor_nogc(free_op1.var);};
if (UNEXPECTED(Z_TYPE_P(EX_VAR(opline->result.var)) == IS_STR_OFFSET)) {
zend_error_noreturn(E_ERROR, "Cannot unset string offsets");
@@ -19200,9 +19200,9 @@ static int ZEND_FASTCALL ZEND_FETCH_OBJ_W_SPEC_VAR_VAR_HANDLER(ZEND_OPCODE_HAND
zval_ptr_dtor_nogc(free_op2.var);
//??? }
-//??? if (IS_VAR == IS_VAR && (free_op1.var != NULL) && READY_TO_DESTROY(free_op1.var)) {
-//??? EXTRACT_ZVAL_PTR(&EX_T(opline->result.var));
-//??? }
+ if (IS_VAR == IS_VAR && (free_op1.var != NULL) && READY_TO_DESTROY(free_op1.var)) {
+ EXTRACT_ZVAL_PTR(EX_VAR(opline->result.var));
+ }
if (free_op1.var) {zval_ptr_dtor_nogc(free_op1.var);};
/* We are going to assign the result by reference */
@@ -19251,9 +19251,9 @@ static int ZEND_FASTCALL ZEND_FETCH_OBJ_RW_SPEC_VAR_VAR_HANDLER(ZEND_OPCODE_HAN
zval_ptr_dtor_nogc(free_op2.var);
//??? }
-//??? if (IS_VAR == IS_VAR && (free_op1.var != NULL) && READY_TO_DESTROY(free_op1.var)) {
-//??? EXTRACT_ZVAL_PTR(&EX_T(opline->result.var));
-//??? }
+ if (IS_VAR == IS_VAR && (free_op1.var != NULL) && READY_TO_DESTROY(free_op1.var)) {
+ EXTRACT_ZVAL_PTR(EX_VAR(opline->result.var));
+ }
if (free_op1.var) {zval_ptr_dtor_nogc(free_op1.var);};
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
@@ -19328,9 +19328,9 @@ static int ZEND_FASTCALL ZEND_FETCH_OBJ_FUNC_ARG_SPEC_VAR_VAR_HANDLER(ZEND_OPCO
zval_ptr_dtor_nogc(free_op2.var);
//??? }
-//??? if (IS_VAR == IS_VAR && (free_op1.var != NULL) && READY_TO_DESTROY(free_op1.var)) {
-//??? EXTRACT_ZVAL_PTR(&EX_T(opline->result.var));
-//??? }
+ if (IS_VAR == IS_VAR && (free_op1.var != NULL) && READY_TO_DESTROY(free_op1.var)) {
+ EXTRACT_ZVAL_PTR(EX_VAR(opline->result.var));
+ }
if (free_op1.var) {zval_ptr_dtor_nogc(free_op1.var);};
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
@@ -19365,9 +19365,9 @@ static int ZEND_FASTCALL ZEND_FETCH_OBJ_UNSET_SPEC_VAR_VAR_HANDLER(ZEND_OPCODE_
zval_ptr_dtor_nogc(free_op2.var);
//??? }
-//??? if (IS_VAR == IS_VAR && (free_op1.var != NULL) && READY_TO_DESTROY(free_op1.var)) {
-//??? EXTRACT_ZVAL_PTR(&EX_T(opline->result.var));
-//??? }
+ if (IS_VAR == IS_VAR && (free_op1.var != NULL) && READY_TO_DESTROY(free_op1.var)) {
+ EXTRACT_ZVAL_PTR(EX_VAR(opline->result.var));
+ }
if (free_op1.var) {zval_ptr_dtor_nogc(free_op1.var);};
retval_ptr = EX_VAR(opline->result.var);
@@ -20907,9 +20907,9 @@ static int ZEND_FASTCALL ZEND_FETCH_DIM_W_SPEC_VAR_UNUSED_HANDLER(ZEND_OPCODE_H
}
zend_fetch_dimension_address(EX_VAR(opline->result.var), container, NULL, IS_UNUSED, BP_VAR_W TSRMLS_CC);
-//??? if (IS_VAR == IS_VAR && (free_op1.var != NULL) && READY_TO_DESTROY(free_op1.var)) {
-//??? EXTRACT_ZVAL_PTR(EX_VAR(opline->result.var));
-//??? }
+ if (IS_VAR == IS_VAR && (free_op1.var != NULL) && READY_TO_DESTROY(free_op1.var)) {
+ EXTRACT_ZVAL_PTR(EX_VAR(opline->result.var));
+ }
if (free_op1.var) {zval_ptr_dtor_nogc(free_op1.var);};
@@ -20949,9 +20949,9 @@ static int ZEND_FASTCALL ZEND_FETCH_DIM_RW_SPEC_VAR_UNUSED_HANDLER(ZEND_OPCODE_
}
zend_fetch_dimension_address(EX_VAR(opline->result.var), container, NULL, IS_UNUSED, BP_VAR_RW TSRMLS_CC);
-//??? if (IS_VAR == IS_VAR && (free_op1.var != NULL) && READY_TO_DESTROY(free_op1.var)) {
-//??? EXTRACT_ZVAL_PTR(&EX_T(opline->result.var));
-//??? }
+ if (IS_VAR == IS_VAR && (free_op1.var != NULL) && READY_TO_DESTROY(free_op1.var)) {
+ EXTRACT_ZVAL_PTR(EX_VAR(opline->result.var));
+ }
if (free_op1.var) {zval_ptr_dtor_nogc(free_op1.var);};
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
@@ -20971,9 +20971,9 @@ static int ZEND_FASTCALL ZEND_FETCH_DIM_FUNC_ARG_SPEC_VAR_UNUSED_HANDLER(ZEND_O
zend_error_noreturn(E_ERROR, "Cannot use string offset as an array");
}
zend_fetch_dimension_address(EX_VAR(opline->result.var), container, NULL, IS_UNUSED, BP_VAR_W TSRMLS_CC);
-//??? if (IS_VAR == IS_VAR && (free_op1.var != NULL) && READY_TO_DESTROY(free_op1.var)) {
-//??? EXTRACT_ZVAL_PTR(&EX_T(opline->result.var));
-//??? }
+ if (IS_VAR == IS_VAR && (free_op1.var != NULL) && READY_TO_DESTROY(free_op1.var)) {
+ EXTRACT_ZVAL_PTR(EX_VAR(opline->result.var));
+ }
if (free_op1.var) {zval_ptr_dtor_nogc(free_op1.var);};
} else {
@@ -22348,9 +22348,9 @@ static int ZEND_FASTCALL ZEND_FETCH_DIM_W_SPEC_VAR_CV_HANDLER(ZEND_OPCODE_HANDL
}
zend_fetch_dimension_address(EX_VAR(opline->result.var), container, _get_zval_ptr_cv_BP_VAR_R(execute_data, opline->op2.var TSRMLS_CC), IS_CV, BP_VAR_W TSRMLS_CC);
-//??? if (IS_VAR == IS_VAR && (free_op1.var != NULL) && READY_TO_DESTROY(free_op1.var)) {
-//??? EXTRACT_ZVAL_PTR(EX_VAR(opline->result.var));
-//??? }
+ if (IS_VAR == IS_VAR && (free_op1.var != NULL) && READY_TO_DESTROY(free_op1.var)) {
+ EXTRACT_ZVAL_PTR(EX_VAR(opline->result.var));
+ }
if (free_op1.var) {zval_ptr_dtor_nogc(free_op1.var);};
@@ -22390,9 +22390,9 @@ static int ZEND_FASTCALL ZEND_FETCH_DIM_RW_SPEC_VAR_CV_HANDLER(ZEND_OPCODE_HAND
}
zend_fetch_dimension_address(EX_VAR(opline->result.var), container, _get_zval_ptr_cv_BP_VAR_R(execute_data, opline->op2.var TSRMLS_CC), IS_CV, BP_VAR_RW TSRMLS_CC);
-//??? if (IS_VAR == IS_VAR && (free_op1.var != NULL) && READY_TO_DESTROY(free_op1.var)) {
-//??? EXTRACT_ZVAL_PTR(&EX_T(opline->result.var));
-//??? }
+ if (IS_VAR == IS_VAR && (free_op1.var != NULL) && READY_TO_DESTROY(free_op1.var)) {
+ EXTRACT_ZVAL_PTR(EX_VAR(opline->result.var));
+ }
if (free_op1.var) {zval_ptr_dtor_nogc(free_op1.var);};
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
@@ -22427,9 +22427,9 @@ static int ZEND_FASTCALL ZEND_FETCH_DIM_FUNC_ARG_SPEC_VAR_CV_HANDLER(ZEND_OPCOD
zend_error_noreturn(E_ERROR, "Cannot use string offset as an array");
}
zend_fetch_dimension_address(EX_VAR(opline->result.var), container, _get_zval_ptr_cv_BP_VAR_R(execute_data, opline->op2.var TSRMLS_CC), IS_CV, BP_VAR_W TSRMLS_CC);
-//??? if (IS_VAR == IS_VAR && (free_op1.var != NULL) && READY_TO_DESTROY(free_op1.var)) {
-//??? EXTRACT_ZVAL_PTR(&EX_T(opline->result.var));
-//??? }
+ if (IS_VAR == IS_VAR && (free_op1.var != NULL) && READY_TO_DESTROY(free_op1.var)) {
+ EXTRACT_ZVAL_PTR(EX_VAR(opline->result.var));
+ }
if (free_op1.var) {zval_ptr_dtor_nogc(free_op1.var);};
} else {
@@ -22462,9 +22462,9 @@ static int ZEND_FASTCALL ZEND_FETCH_DIM_UNSET_SPEC_VAR_CV_HANDLER(ZEND_OPCODE_H
}
zend_fetch_dimension_address(EX_VAR(opline->result.var), container, _get_zval_ptr_cv_BP_VAR_R(execute_data, opline->op2.var TSRMLS_CC), IS_CV, BP_VAR_UNSET TSRMLS_CC);
-//??? if (IS_VAR == IS_VAR && (free_op1.var != NULL) && READY_TO_DESTROY(free_op1.var)) {
-//??? EXTRACT_ZVAL_PTR(&EX_T(opline->result.var));
-//??? }
+ if (IS_VAR == IS_VAR && (free_op1.var != NULL) && READY_TO_DESTROY(free_op1.var)) {
+ EXTRACT_ZVAL_PTR(EX_VAR(opline->result.var));
+ }
if (free_op1.var) {zval_ptr_dtor_nogc(free_op1.var);};
if (UNEXPECTED(Z_TYPE_P(EX_VAR(opline->result.var)) == IS_STR_OFFSET)) {
zend_error_noreturn(E_ERROR, "Cannot unset string offsets");
@@ -22562,9 +22562,9 @@ static int ZEND_FASTCALL ZEND_FETCH_OBJ_W_SPEC_VAR_CV_HANDLER(ZEND_OPCODE_HANDL
//??? }
-//??? if (IS_VAR == IS_VAR && (free_op1.var != NULL) && READY_TO_DESTROY(free_op1.var)) {
-//??? EXTRACT_ZVAL_PTR(&EX_T(opline->result.var));
-//??? }
+ if (IS_VAR == IS_VAR && (free_op1.var != NULL) && READY_TO_DESTROY(free_op1.var)) {
+ EXTRACT_ZVAL_PTR(EX_VAR(opline->result.var));
+ }
if (free_op1.var) {zval_ptr_dtor_nogc(free_op1.var);};
/* We are going to assign the result by reference */
@@ -22613,9 +22613,9 @@ static int ZEND_FASTCALL ZEND_FETCH_OBJ_RW_SPEC_VAR_CV_HANDLER(ZEND_OPCODE_HAND
//??? }
-//??? if (IS_VAR == IS_VAR && (free_op1.var != NULL) && READY_TO_DESTROY(free_op1.var)) {
-//??? EXTRACT_ZVAL_PTR(&EX_T(opline->result.var));
-//??? }
+ if (IS_VAR == IS_VAR && (free_op1.var != NULL) && READY_TO_DESTROY(free_op1.var)) {
+ EXTRACT_ZVAL_PTR(EX_VAR(opline->result.var));
+ }
if (free_op1.var) {zval_ptr_dtor_nogc(free_op1.var);};
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
@@ -22690,9 +22690,9 @@ static int ZEND_FASTCALL ZEND_FETCH_OBJ_FUNC_ARG_SPEC_VAR_CV_HANDLER(ZEND_OPCOD
//??? }
-//??? if (IS_VAR == IS_VAR && (free_op1.var != NULL) && READY_TO_DESTROY(free_op1.var)) {
-//??? EXTRACT_ZVAL_PTR(&EX_T(opline->result.var));
-//??? }
+ if (IS_VAR == IS_VAR && (free_op1.var != NULL) && READY_TO_DESTROY(free_op1.var)) {
+ EXTRACT_ZVAL_PTR(EX_VAR(opline->result.var));
+ }
if (free_op1.var) {zval_ptr_dtor_nogc(free_op1.var);};
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
@@ -22727,9 +22727,9 @@ static int ZEND_FASTCALL ZEND_FETCH_OBJ_UNSET_SPEC_VAR_CV_HANDLER(ZEND_OPCODE_H
//??? }
-//??? if (IS_VAR == IS_VAR && (free_op1.var != NULL) && READY_TO_DESTROY(free_op1.var)) {
-//??? EXTRACT_ZVAL_PTR(&EX_T(opline->result.var));
-//??? }
+ if (IS_VAR == IS_VAR && (free_op1.var != NULL) && READY_TO_DESTROY(free_op1.var)) {
+ EXTRACT_ZVAL_PTR(EX_VAR(opline->result.var));
+ }
if (free_op1.var) {zval_ptr_dtor_nogc(free_op1.var);};
retval_ptr = EX_VAR(opline->result.var);
@@ -24268,9 +24268,9 @@ static int ZEND_FASTCALL ZEND_FETCH_OBJ_W_SPEC_UNUSED_CONST_HANDLER(ZEND_OPCODE
//??? }
-//??? if (IS_UNUSED == IS_VAR && 0 && READY_TO_DESTROY(free_op1.var)) {
-//??? EXTRACT_ZVAL_PTR(&EX_T(opline->result.var));
-//??? }
+ if (IS_UNUSED == IS_VAR && 0 && READY_TO_DESTROY(free_op1.var)) {
+ EXTRACT_ZVAL_PTR(EX_VAR(opline->result.var));
+ }
/* We are going to assign the result by reference */
if (opline->extended_value & ZEND_FETCH_MAKE_REF) {
@@ -24318,9 +24318,9 @@ static int ZEND_FASTCALL ZEND_FETCH_OBJ_RW_SPEC_UNUSED_CONST_HANDLER(ZEND_OPCOD
//??? }
-//??? if (IS_UNUSED == IS_VAR && 0 && READY_TO_DESTROY(free_op1.var)) {
-//??? EXTRACT_ZVAL_PTR(&EX_T(opline->result.var));
-//??? }
+ if (IS_UNUSED == IS_VAR && 0 && READY_TO_DESTROY(free_op1.var)) {
+ EXTRACT_ZVAL_PTR(EX_VAR(opline->result.var));
+ }
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
@@ -24394,9 +24394,9 @@ static int ZEND_FASTCALL ZEND_FETCH_OBJ_FUNC_ARG_SPEC_UNUSED_CONST_HANDLER(ZEND
//??? }
-//??? if (IS_UNUSED == IS_VAR && 0 && READY_TO_DESTROY(free_op1.var)) {
-//??? EXTRACT_ZVAL_PTR(&EX_T(opline->result.var));
-//??? }
+ if (IS_UNUSED == IS_VAR && 0 && READY_TO_DESTROY(free_op1.var)) {
+ EXTRACT_ZVAL_PTR(EX_VAR(opline->result.var));
+ }
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
@@ -24431,9 +24431,9 @@ static int ZEND_FASTCALL ZEND_FETCH_OBJ_UNSET_SPEC_UNUSED_CONST_HANDLER(ZEND_OP
//??? }
-//??? if (IS_UNUSED == IS_VAR && 0 && READY_TO_DESTROY(free_op1.var)) {
-//??? EXTRACT_ZVAL_PTR(&EX_T(opline->result.var));
-//??? }
+ if (IS_UNUSED == IS_VAR && 0 && READY_TO_DESTROY(free_op1.var)) {
+ EXTRACT_ZVAL_PTR(EX_VAR(opline->result.var));
+ }
retval_ptr = EX_VAR(opline->result.var);
if (Z_TYPE_P(retval_ptr) == IS_INDIRECT) {
@@ -25638,9 +25638,9 @@ static int ZEND_FASTCALL ZEND_FETCH_OBJ_W_SPEC_UNUSED_TMP_HANDLER(ZEND_OPCODE_H
zval_dtor(free_op2.var);
//??? }
-//??? if (IS_UNUSED == IS_VAR && 0 && READY_TO_DESTROY(free_op1.var)) {
-//??? EXTRACT_ZVAL_PTR(&EX_T(opline->result.var));
-//??? }
+ if (IS_UNUSED == IS_VAR && 0 && READY_TO_DESTROY(free_op1.var)) {
+ EXTRACT_ZVAL_PTR(EX_VAR(opline->result.var));
+ }
/* We are going to assign the result by reference */
if (opline->extended_value & ZEND_FETCH_MAKE_REF) {
@@ -25688,9 +25688,9 @@ static int ZEND_FASTCALL ZEND_FETCH_OBJ_RW_SPEC_UNUSED_TMP_HANDLER(ZEND_OPCODE_
zval_dtor(free_op2.var);
//??? }
-//??? if (IS_UNUSED == IS_VAR && 0 && READY_TO_DESTROY(free_op1.var)) {
-//??? EXTRACT_ZVAL_PTR(&EX_T(opline->result.var));
-//??? }
+ if (IS_UNUSED == IS_VAR && 0 && READY_TO_DESTROY(free_op1.var)) {
+ EXTRACT_ZVAL_PTR(EX_VAR(opline->result.var));
+ }
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
@@ -25764,9 +25764,9 @@ static int ZEND_FASTCALL ZEND_FETCH_OBJ_FUNC_ARG_SPEC_UNUSED_TMP_HANDLER(ZEND_O
zval_dtor(free_op2.var);
//??? }
-//??? if (IS_UNUSED == IS_VAR && 0 && READY_TO_DESTROY(free_op1.var)) {
-//??? EXTRACT_ZVAL_PTR(&EX_T(opline->result.var));
-//??? }
+ if (IS_UNUSED == IS_VAR && 0 && READY_TO_DESTROY(free_op1.var)) {
+ EXTRACT_ZVAL_PTR(EX_VAR(opline->result.var));
+ }
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
@@ -25801,9 +25801,9 @@ static int ZEND_FASTCALL ZEND_FETCH_OBJ_UNSET_SPEC_UNUSED_TMP_HANDLER(ZEND_OPCO
zval_dtor(free_op2.var);
//??? }
-//??? if (IS_UNUSED == IS_VAR && 0 && READY_TO_DESTROY(free_op1.var)) {
-//??? EXTRACT_ZVAL_PTR(&EX_T(opline->result.var));
-//??? }
+ if (IS_UNUSED == IS_VAR && 0 && READY_TO_DESTROY(free_op1.var)) {
+ EXTRACT_ZVAL_PTR(EX_VAR(opline->result.var));
+ }
retval_ptr = EX_VAR(opline->result.var);
if (Z_TYPE_P(retval_ptr) == IS_INDIRECT) {
@@ -26924,9 +26924,9 @@ static int ZEND_FASTCALL ZEND_FETCH_OBJ_W_SPEC_UNUSED_VAR_HANDLER(ZEND_OPCODE_H
zval_ptr_dtor_nogc(free_op2.var);
//??? }
-//??? if (IS_UNUSED == IS_VAR && 0 && READY_TO_DESTROY(free_op1.var)) {
-//??? EXTRACT_ZVAL_PTR(&EX_T(opline->result.var));
-//??? }
+ if (IS_UNUSED == IS_VAR && 0 && READY_TO_DESTROY(free_op1.var)) {
+ EXTRACT_ZVAL_PTR(EX_VAR(opline->result.var));
+ }
/* We are going to assign the result by reference */
if (opline->extended_value & ZEND_FETCH_MAKE_REF) {
@@ -26974,9 +26974,9 @@ static int ZEND_FASTCALL ZEND_FETCH_OBJ_RW_SPEC_UNUSED_VAR_HANDLER(ZEND_OPCODE_
zval_ptr_dtor_nogc(free_op2.var);
//??? }
-//??? if (IS_UNUSED == IS_VAR && 0 && READY_TO_DESTROY(free_op1.var)) {
-//??? EXTRACT_ZVAL_PTR(&EX_T(opline->result.var));
-//??? }
+ if (IS_UNUSED == IS_VAR && 0 && READY_TO_DESTROY(free_op1.var)) {
+ EXTRACT_ZVAL_PTR(EX_VAR(opline->result.var));
+ }
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
@@ -27050,9 +27050,9 @@ static int ZEND_FASTCALL ZEND_FETCH_OBJ_FUNC_ARG_SPEC_UNUSED_VAR_HANDLER(ZEND_O
zval_ptr_dtor_nogc(free_op2.var);
//??? }
-//??? if (IS_UNUSED == IS_VAR && 0 && READY_TO_DESTROY(free_op1.var)) {
-//??? EXTRACT_ZVAL_PTR(&EX_T(opline->result.var));
-//??? }
+ if (IS_UNUSED == IS_VAR && 0 && READY_TO_DESTROY(free_op1.var)) {
+ EXTRACT_ZVAL_PTR(EX_VAR(opline->result.var));
+ }
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
@@ -27087,9 +27087,9 @@ static int ZEND_FASTCALL ZEND_FETCH_OBJ_UNSET_SPEC_UNUSED_VAR_HANDLER(ZEND_OPCO
zval_ptr_dtor_nogc(free_op2.var);
//??? }
-//??? if (IS_UNUSED == IS_VAR && 0 && READY_TO_DESTROY(free_op1.var)) {
-//??? EXTRACT_ZVAL_PTR(&EX_T(opline->result.var));
-//??? }
+ if (IS_UNUSED == IS_VAR && 0 && READY_TO_DESTROY(free_op1.var)) {
+ EXTRACT_ZVAL_PTR(EX_VAR(opline->result.var));
+ }
retval_ptr = EX_VAR(opline->result.var);
if (Z_TYPE_P(retval_ptr) == IS_INDIRECT) {
@@ -28610,9 +28610,9 @@ static int ZEND_FASTCALL ZEND_FETCH_OBJ_W_SPEC_UNUSED_CV_HANDLER(ZEND_OPCODE_HA
//??? }
-//??? if (IS_UNUSED == IS_VAR && 0 && READY_TO_DESTROY(free_op1.var)) {
-//??? EXTRACT_ZVAL_PTR(&EX_T(opline->result.var));
-//??? }
+ if (IS_UNUSED == IS_VAR && 0 && READY_TO_DESTROY(free_op1.var)) {
+ EXTRACT_ZVAL_PTR(EX_VAR(opline->result.var));
+ }
/* We are going to assign the result by reference */
if (opline->extended_value & ZEND_FETCH_MAKE_REF) {
@@ -28660,9 +28660,9 @@ static int ZEND_FASTCALL ZEND_FETCH_OBJ_RW_SPEC_UNUSED_CV_HANDLER(ZEND_OPCODE_H
//??? }
-//??? if (IS_UNUSED == IS_VAR && 0 && READY_TO_DESTROY(free_op1.var)) {
-//??? EXTRACT_ZVAL_PTR(&EX_T(opline->result.var));
-//??? }
+ if (IS_UNUSED == IS_VAR && 0 && READY_TO_DESTROY(free_op1.var)) {
+ EXTRACT_ZVAL_PTR(EX_VAR(opline->result.var));
+ }
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
@@ -28736,9 +28736,9 @@ static int ZEND_FASTCALL ZEND_FETCH_OBJ_FUNC_ARG_SPEC_UNUSED_CV_HANDLER(ZEND_OP
//??? }
-//??? if (IS_UNUSED == IS_VAR && 0 && READY_TO_DESTROY(free_op1.var)) {
-//??? EXTRACT_ZVAL_PTR(&EX_T(opline->result.var));
-//??? }
+ if (IS_UNUSED == IS_VAR && 0 && READY_TO_DESTROY(free_op1.var)) {
+ EXTRACT_ZVAL_PTR(EX_VAR(opline->result.var));
+ }
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
@@ -28773,9 +28773,9 @@ static int ZEND_FASTCALL ZEND_FETCH_OBJ_UNSET_SPEC_UNUSED_CV_HANDLER(ZEND_OPCOD
//??? }
-//??? if (IS_UNUSED == IS_VAR && 0 && READY_TO_DESTROY(free_op1.var)) {
-//??? EXTRACT_ZVAL_PTR(&EX_T(opline->result.var));
-//??? }
+ if (IS_UNUSED == IS_VAR && 0 && READY_TO_DESTROY(free_op1.var)) {
+ EXTRACT_ZVAL_PTR(EX_VAR(opline->result.var));
+ }
retval_ptr = EX_VAR(opline->result.var);
if (Z_TYPE_P(retval_ptr) == IS_INDIRECT) {
@@ -31491,9 +31491,9 @@ static int ZEND_FASTCALL ZEND_FETCH_DIM_W_SPEC_CV_CONST_HANDLER(ZEND_OPCODE_HAN
}
zend_fetch_dimension_address(EX_VAR(opline->result.var), container, opline->op2.zv, IS_CONST, BP_VAR_W TSRMLS_CC);
-//??? if (IS_CV == IS_VAR && 0 && READY_TO_DESTROY(free_op1.var)) {
-//??? EXTRACT_ZVAL_PTR(EX_VAR(opline->result.var));
-//??? }
+ if (IS_CV == IS_VAR && 0 && READY_TO_DESTROY(free_op1.var)) {
+ EXTRACT_ZVAL_PTR(EX_VAR(opline->result.var));
+ }
/* We are going to assign the result by reference */
if (UNEXPECTED(opline->extended_value != 0)) {
@@ -31531,9 +31531,9 @@ static int ZEND_FASTCALL ZEND_FETCH_DIM_RW_SPEC_CV_CONST_HANDLER(ZEND_OPCODE_HA
}
zend_fetch_dimension_address(EX_VAR(opline->result.var), container, opline->op2.zv, IS_CONST, BP_VAR_RW TSRMLS_CC);
-//??? if (IS_CV == IS_VAR && 0 && READY_TO_DESTROY(free_op1.var)) {
-//??? EXTRACT_ZVAL_PTR(&EX_T(opline->result.var));
-//??? }
+ if (IS_CV == IS_VAR && 0 && READY_TO_DESTROY(free_op1.var)) {
+ EXTRACT_ZVAL_PTR(EX_VAR(opline->result.var));
+ }
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
@@ -31568,9 +31568,9 @@ static int ZEND_FASTCALL ZEND_FETCH_DIM_FUNC_ARG_SPEC_CV_CONST_HANDLER(ZEND_OPC
zend_error_noreturn(E_ERROR, "Cannot use string offset as an array");
}
zend_fetch_dimension_address(EX_VAR(opline->result.var), container, opline->op2.zv, IS_CONST, BP_VAR_W TSRMLS_CC);
-//??? if (IS_CV == IS_VAR && 0 && READY_TO_DESTROY(free_op1.var)) {
-//??? EXTRACT_ZVAL_PTR(&EX_T(opline->result.var));
-//??? }
+ if (IS_CV == IS_VAR && 0 && READY_TO_DESTROY(free_op1.var)) {
+ EXTRACT_ZVAL_PTR(EX_VAR(opline->result.var));
+ }
} else {
@@ -31603,9 +31603,9 @@ static int ZEND_FASTCALL ZEND_FETCH_DIM_UNSET_SPEC_CV_CONST_HANDLER(ZEND_OPCODE
}
zend_fetch_dimension_address(EX_VAR(opline->result.var), container, opline->op2.zv, IS_CONST, BP_VAR_UNSET TSRMLS_CC);
-//??? if (IS_CV == IS_VAR && 0 && READY_TO_DESTROY(free_op1.var)) {
-//??? EXTRACT_ZVAL_PTR(&EX_T(opline->result.var));
-//??? }
+ if (IS_CV == IS_VAR && 0 && READY_TO_DESTROY(free_op1.var)) {
+ EXTRACT_ZVAL_PTR(EX_VAR(opline->result.var));
+ }
if (UNEXPECTED(Z_TYPE_P(EX_VAR(opline->result.var)) == IS_STR_OFFSET)) {
zend_error_noreturn(E_ERROR, "Cannot unset string offsets");
@@ -31702,9 +31702,9 @@ static int ZEND_FASTCALL ZEND_FETCH_OBJ_W_SPEC_CV_CONST_HANDLER(ZEND_OPCODE_HAN
//??? }
-//??? if (IS_CV == IS_VAR && 0 && READY_TO_DESTROY(free_op1.var)) {
-//??? EXTRACT_ZVAL_PTR(&EX_T(opline->result.var));
-//??? }
+ if (IS_CV == IS_VAR && 0 && READY_TO_DESTROY(free_op1.var)) {
+ EXTRACT_ZVAL_PTR(EX_VAR(opline->result.var));
+ }
/* We are going to assign the result by reference */
if (opline->extended_value & ZEND_FETCH_MAKE_REF) {
@@ -31752,9 +31752,9 @@ static int ZEND_FASTCALL ZEND_FETCH_OBJ_RW_SPEC_CV_CONST_HANDLER(ZEND_OPCODE_HA
//??? }
-//??? if (IS_CV == IS_VAR && 0 && READY_TO_DESTROY(free_op1.var)) {
-//??? EXTRACT_ZVAL_PTR(&EX_T(opline->result.var));
-//??? }
+ if (IS_CV == IS_VAR && 0 && READY_TO_DESTROY(free_op1.var)) {
+ EXTRACT_ZVAL_PTR(EX_VAR(opline->result.var));
+ }
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
@@ -31828,9 +31828,9 @@ static int ZEND_FASTCALL ZEND_FETCH_OBJ_FUNC_ARG_SPEC_CV_CONST_HANDLER(ZEND_OPC
//??? }
-//??? if (IS_CV == IS_VAR && 0 && READY_TO_DESTROY(free_op1.var)) {
-//??? EXTRACT_ZVAL_PTR(&EX_T(opline->result.var));
-//??? }
+ if (IS_CV == IS_VAR && 0 && READY_TO_DESTROY(free_op1.var)) {
+ EXTRACT_ZVAL_PTR(EX_VAR(opline->result.var));
+ }
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
@@ -31865,9 +31865,9 @@ static int ZEND_FASTCALL ZEND_FETCH_OBJ_UNSET_SPEC_CV_CONST_HANDLER(ZEND_OPCODE
//??? }
-//??? if (IS_CV == IS_VAR && 0 && READY_TO_DESTROY(free_op1.var)) {
-//??? EXTRACT_ZVAL_PTR(&EX_T(opline->result.var));
-//??? }
+ if (IS_CV == IS_VAR && 0 && READY_TO_DESTROY(free_op1.var)) {
+ EXTRACT_ZVAL_PTR(EX_VAR(opline->result.var));
+ }
retval_ptr = EX_VAR(opline->result.var);
if (Z_TYPE_P(retval_ptr) == IS_INDIRECT) {
@@ -33559,9 +33559,9 @@ static int ZEND_FASTCALL ZEND_FETCH_DIM_W_SPEC_CV_TMP_HANDLER(ZEND_OPCODE_HANDL
}
zend_fetch_dimension_address(EX_VAR(opline->result.var), container, _get_zval_ptr_tmp(opline->op2.var, execute_data, &free_op2 TSRMLS_CC), IS_TMP_VAR, BP_VAR_W TSRMLS_CC);
zval_dtor(free_op2.var);
-//??? if (IS_CV == IS_VAR && 0 && READY_TO_DESTROY(free_op1.var)) {
-//??? EXTRACT_ZVAL_PTR(EX_VAR(opline->result.var));
-//??? }
+ if (IS_CV == IS_VAR && 0 && READY_TO_DESTROY(free_op1.var)) {
+ EXTRACT_ZVAL_PTR(EX_VAR(opline->result.var));
+ }
/* We are going to assign the result by reference */
if (UNEXPECTED(opline->extended_value != 0)) {
@@ -33599,9 +33599,9 @@ static int ZEND_FASTCALL ZEND_FETCH_DIM_RW_SPEC_CV_TMP_HANDLER(ZEND_OPCODE_HAND
}
zend_fetch_dimension_address(EX_VAR(opline->result.var), container, _get_zval_ptr_tmp(opline->op2.var, execute_data, &free_op2 TSRMLS_CC), IS_TMP_VAR, BP_VAR_RW TSRMLS_CC);
zval_dtor(free_op2.var);
-//??? if (IS_CV == IS_VAR && 0 && READY_TO_DESTROY(free_op1.var)) {
-//??? EXTRACT_ZVAL_PTR(&EX_T(opline->result.var));
-//??? }
+ if (IS_CV == IS_VAR && 0 && READY_TO_DESTROY(free_op1.var)) {
+ EXTRACT_ZVAL_PTR(EX_VAR(opline->result.var));
+ }
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
@@ -33636,9 +33636,9 @@ static int ZEND_FASTCALL ZEND_FETCH_DIM_FUNC_ARG_SPEC_CV_TMP_HANDLER(ZEND_OPCOD
zend_error_noreturn(E_ERROR, "Cannot use string offset as an array");
}
zend_fetch_dimension_address(EX_VAR(opline->result.var), container, _get_zval_ptr_tmp(opline->op2.var, execute_data, &free_op2 TSRMLS_CC), IS_TMP_VAR, BP_VAR_W TSRMLS_CC);
-//??? if (IS_CV == IS_VAR && 0 && READY_TO_DESTROY(free_op1.var)) {
-//??? EXTRACT_ZVAL_PTR(&EX_T(opline->result.var));
-//??? }
+ if (IS_CV == IS_VAR && 0 && READY_TO_DESTROY(free_op1.var)) {
+ EXTRACT_ZVAL_PTR(EX_VAR(opline->result.var));
+ }
zval_dtor(free_op2.var);
} else {
@@ -33671,9 +33671,9 @@ static int ZEND_FASTCALL ZEND_FETCH_DIM_UNSET_SPEC_CV_TMP_HANDLER(ZEND_OPCODE_H
}
zend_fetch_dimension_address(EX_VAR(opline->result.var), container, _get_zval_ptr_tmp(opline->op2.var, execute_data, &free_op2 TSRMLS_CC), IS_TMP_VAR, BP_VAR_UNSET TSRMLS_CC);
zval_dtor(free_op2.var);
-//??? if (IS_CV == IS_VAR && 0 && READY_TO_DESTROY(free_op1.var)) {
-//??? EXTRACT_ZVAL_PTR(&EX_T(opline->result.var));
-//??? }
+ if (IS_CV == IS_VAR && 0 && READY_TO_DESTROY(free_op1.var)) {
+ EXTRACT_ZVAL_PTR(EX_VAR(opline->result.var));
+ }
if (UNEXPECTED(Z_TYPE_P(EX_VAR(opline->result.var)) == IS_STR_OFFSET)) {
zend_error_noreturn(E_ERROR, "Cannot unset string offsets");
@@ -33770,9 +33770,9 @@ static int ZEND_FASTCALL ZEND_FETCH_OBJ_W_SPEC_CV_TMP_HANDLER(ZEND_OPCODE_HANDL
zval_dtor(free_op2.var);
//??? }
-//??? if (IS_CV == IS_VAR && 0 && READY_TO_DESTROY(free_op1.var)) {
-//??? EXTRACT_ZVAL_PTR(&EX_T(opline->result.var));
-//??? }
+ if (IS_CV == IS_VAR && 0 && READY_TO_DESTROY(free_op1.var)) {
+ EXTRACT_ZVAL_PTR(EX_VAR(opline->result.var));
+ }
/* We are going to assign the result by reference */
if (opline->extended_value & ZEND_FETCH_MAKE_REF) {
@@ -33820,9 +33820,9 @@ static int ZEND_FASTCALL ZEND_FETCH_OBJ_RW_SPEC_CV_TMP_HANDLER(ZEND_OPCODE_HAND
zval_dtor(free_op2.var);
//??? }
-//??? if (IS_CV == IS_VAR && 0 && READY_TO_DESTROY(free_op1.var)) {
-//??? EXTRACT_ZVAL_PTR(&EX_T(opline->result.var));
-//??? }
+ if (IS_CV == IS_VAR && 0 && READY_TO_DESTROY(free_op1.var)) {
+ EXTRACT_ZVAL_PTR(EX_VAR(opline->result.var));
+ }
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
@@ -33896,9 +33896,9 @@ static int ZEND_FASTCALL ZEND_FETCH_OBJ_FUNC_ARG_SPEC_CV_TMP_HANDLER(ZEND_OPCOD
zval_dtor(free_op2.var);
//??? }
-//??? if (IS_CV == IS_VAR && 0 && READY_TO_DESTROY(free_op1.var)) {
-//??? EXTRACT_ZVAL_PTR(&EX_T(opline->result.var));
-//??? }
+ if (IS_CV == IS_VAR && 0 && READY_TO_DESTROY(free_op1.var)) {
+ EXTRACT_ZVAL_PTR(EX_VAR(opline->result.var));
+ }
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
@@ -33933,9 +33933,9 @@ static int ZEND_FASTCALL ZEND_FETCH_OBJ_UNSET_SPEC_CV_TMP_HANDLER(ZEND_OPCODE_H
zval_dtor(free_op2.var);
//??? }
-//??? if (IS_CV == IS_VAR && 0 && READY_TO_DESTROY(free_op1.var)) {
-//??? EXTRACT_ZVAL_PTR(&EX_T(opline->result.var));
-//??? }
+ if (IS_CV == IS_VAR && 0 && READY_TO_DESTROY(free_op1.var)) {
+ EXTRACT_ZVAL_PTR(EX_VAR(opline->result.var));
+ }
retval_ptr = EX_VAR(opline->result.var);
if (Z_TYPE_P(retval_ptr) == IS_INDIRECT) {
@@ -35617,9 +35617,9 @@ static int ZEND_FASTCALL ZEND_FETCH_DIM_W_SPEC_CV_VAR_HANDLER(ZEND_OPCODE_HANDL
}
zend_fetch_dimension_address(EX_VAR(opline->result.var), container, _get_zval_ptr_var(opline->op2.var, execute_data, &free_op2 TSRMLS_CC), IS_VAR, BP_VAR_W TSRMLS_CC);
zval_ptr_dtor_nogc(free_op2.var);
-//??? if (IS_CV == IS_VAR && 0 && READY_TO_DESTROY(free_op1.var)) {
-//??? EXTRACT_ZVAL_PTR(EX_VAR(opline->result.var));
-//??? }
+ if (IS_CV == IS_VAR && 0 && READY_TO_DESTROY(free_op1.var)) {
+ EXTRACT_ZVAL_PTR(EX_VAR(opline->result.var));
+ }
/* We are going to assign the result by reference */
if (UNEXPECTED(opline->extended_value != 0)) {
@@ -35657,9 +35657,9 @@ static int ZEND_FASTCALL ZEND_FETCH_DIM_RW_SPEC_CV_VAR_HANDLER(ZEND_OPCODE_HAND
}
zend_fetch_dimension_address(EX_VAR(opline->result.var), container, _get_zval_ptr_var(opline->op2.var, execute_data, &free_op2 TSRMLS_CC), IS_VAR, BP_VAR_RW TSRMLS_CC);
zval_ptr_dtor_nogc(free_op2.var);
-//??? if (IS_CV == IS_VAR && 0 && READY_TO_DESTROY(free_op1.var)) {
-//??? EXTRACT_ZVAL_PTR(&EX_T(opline->result.var));
-//??? }
+ if (IS_CV == IS_VAR && 0 && READY_TO_DESTROY(free_op1.var)) {
+ EXTRACT_ZVAL_PTR(EX_VAR(opline->result.var));
+ }
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
@@ -35694,9 +35694,9 @@ static int ZEND_FASTCALL ZEND_FETCH_DIM_FUNC_ARG_SPEC_CV_VAR_HANDLER(ZEND_OPCOD
zend_error_noreturn(E_ERROR, "Cannot use string offset as an array");
}
zend_fetch_dimension_address(EX_VAR(opline->result.var), container, _get_zval_ptr_var(opline->op2.var, execute_data, &free_op2 TSRMLS_CC), IS_VAR, BP_VAR_W TSRMLS_CC);
-//??? if (IS_CV == IS_VAR && 0 && READY_TO_DESTROY(free_op1.var)) {
-//??? EXTRACT_ZVAL_PTR(&EX_T(opline->result.var));
-//??? }
+ if (IS_CV == IS_VAR && 0 && READY_TO_DESTROY(free_op1.var)) {
+ EXTRACT_ZVAL_PTR(EX_VAR(opline->result.var));
+ }
zval_ptr_dtor_nogc(free_op2.var);
} else {
@@ -35729,9 +35729,9 @@ static int ZEND_FASTCALL ZEND_FETCH_DIM_UNSET_SPEC_CV_VAR_HANDLER(ZEND_OPCODE_H
}
zend_fetch_dimension_address(EX_VAR(opline->result.var), container, _get_zval_ptr_var(opline->op2.var, execute_data, &free_op2 TSRMLS_CC), IS_VAR, BP_VAR_UNSET TSRMLS_CC);
zval_ptr_dtor_nogc(free_op2.var);
-//??? if (IS_CV == IS_VAR && 0 && READY_TO_DESTROY(free_op1.var)) {
-//??? EXTRACT_ZVAL_PTR(&EX_T(opline->result.var));
-//??? }
+ if (IS_CV == IS_VAR && 0 && READY_TO_DESTROY(free_op1.var)) {
+ EXTRACT_ZVAL_PTR(EX_VAR(opline->result.var));
+ }
if (UNEXPECTED(Z_TYPE_P(EX_VAR(opline->result.var)) == IS_STR_OFFSET)) {
zend_error_noreturn(E_ERROR, "Cannot unset string offsets");
@@ -35828,9 +35828,9 @@ static int ZEND_FASTCALL ZEND_FETCH_OBJ_W_SPEC_CV_VAR_HANDLER(ZEND_OPCODE_HANDL
zval_ptr_dtor_nogc(free_op2.var);
//??? }
-//??? if (IS_CV == IS_VAR && 0 && READY_TO_DESTROY(free_op1.var)) {
-//??? EXTRACT_ZVAL_PTR(&EX_T(opline->result.var));
-//??? }
+ if (IS_CV == IS_VAR && 0 && READY_TO_DESTROY(free_op1.var)) {
+ EXTRACT_ZVAL_PTR(EX_VAR(opline->result.var));
+ }
/* We are going to assign the result by reference */
if (opline->extended_value & ZEND_FETCH_MAKE_REF) {
@@ -35878,9 +35878,9 @@ static int ZEND_FASTCALL ZEND_FETCH_OBJ_RW_SPEC_CV_VAR_HANDLER(ZEND_OPCODE_HAND
zval_ptr_dtor_nogc(free_op2.var);
//??? }
-//??? if (IS_CV == IS_VAR && 0 && READY_TO_DESTROY(free_op1.var)) {
-//??? EXTRACT_ZVAL_PTR(&EX_T(opline->result.var));
-//??? }
+ if (IS_CV == IS_VAR && 0 && READY_TO_DESTROY(free_op1.var)) {
+ EXTRACT_ZVAL_PTR(EX_VAR(opline->result.var));
+ }
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
@@ -35954,9 +35954,9 @@ static int ZEND_FASTCALL ZEND_FETCH_OBJ_FUNC_ARG_SPEC_CV_VAR_HANDLER(ZEND_OPCOD
zval_ptr_dtor_nogc(free_op2.var);
//??? }
-//??? if (IS_CV == IS_VAR && 0 && READY_TO_DESTROY(free_op1.var)) {
-//??? EXTRACT_ZVAL_PTR(&EX_T(opline->result.var));
-//??? }
+ if (IS_CV == IS_VAR && 0 && READY_TO_DESTROY(free_op1.var)) {
+ EXTRACT_ZVAL_PTR(EX_VAR(opline->result.var));
+ }
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
@@ -35991,9 +35991,9 @@ static int ZEND_FASTCALL ZEND_FETCH_OBJ_UNSET_SPEC_CV_VAR_HANDLER(ZEND_OPCODE_H
zval_ptr_dtor_nogc(free_op2.var);
//??? }
-//??? if (IS_CV == IS_VAR && 0 && READY_TO_DESTROY(free_op1.var)) {
-//??? EXTRACT_ZVAL_PTR(&EX_T(opline->result.var));
-//??? }
+ if (IS_CV == IS_VAR && 0 && READY_TO_DESTROY(free_op1.var)) {
+ EXTRACT_ZVAL_PTR(EX_VAR(opline->result.var));
+ }
retval_ptr = EX_VAR(opline->result.var);
if (Z_TYPE_P(retval_ptr) == IS_INDIRECT) {
@@ -37412,9 +37412,9 @@ static int ZEND_FASTCALL ZEND_FETCH_DIM_W_SPEC_CV_UNUSED_HANDLER(ZEND_OPCODE_HA
}
zend_fetch_dimension_address(EX_VAR(opline->result.var), container, NULL, IS_UNUSED, BP_VAR_W TSRMLS_CC);
-//??? if (IS_CV == IS_VAR && 0 && READY_TO_DESTROY(free_op1.var)) {
-//??? EXTRACT_ZVAL_PTR(EX_VAR(opline->result.var));
-//??? }
+ if (IS_CV == IS_VAR && 0 && READY_TO_DESTROY(free_op1.var)) {
+ EXTRACT_ZVAL_PTR(EX_VAR(opline->result.var));
+ }
/* We are going to assign the result by reference */
if (UNEXPECTED(opline->extended_value != 0)) {
@@ -37452,9 +37452,9 @@ static int ZEND_FASTCALL ZEND_FETCH_DIM_RW_SPEC_CV_UNUSED_HANDLER(ZEND_OPCODE_H
}
zend_fetch_dimension_address(EX_VAR(opline->result.var), container, NULL, IS_UNUSED, BP_VAR_RW TSRMLS_CC);
-//??? if (IS_CV == IS_VAR && 0 && READY_TO_DESTROY(free_op1.var)) {
-//??? EXTRACT_ZVAL_PTR(&EX_T(opline->result.var));
-//??? }
+ if (IS_CV == IS_VAR && 0 && READY_TO_DESTROY(free_op1.var)) {
+ EXTRACT_ZVAL_PTR(EX_VAR(opline->result.var));
+ }
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
@@ -37474,9 +37474,9 @@ static int ZEND_FASTCALL ZEND_FETCH_DIM_FUNC_ARG_SPEC_CV_UNUSED_HANDLER(ZEND_OP
zend_error_noreturn(E_ERROR, "Cannot use string offset as an array");
}
zend_fetch_dimension_address(EX_VAR(opline->result.var), container, NULL, IS_UNUSED, BP_VAR_W TSRMLS_CC);
-//??? if (IS_CV == IS_VAR && 0 && READY_TO_DESTROY(free_op1.var)) {
-//??? EXTRACT_ZVAL_PTR(&EX_T(opline->result.var));
-//??? }
+ if (IS_CV == IS_VAR && 0 && READY_TO_DESTROY(free_op1.var)) {
+ EXTRACT_ZVAL_PTR(EX_VAR(opline->result.var));
+ }
} else {
@@ -38719,9 +38719,9 @@ static int ZEND_FASTCALL ZEND_FETCH_DIM_W_SPEC_CV_CV_HANDLER(ZEND_OPCODE_HANDLE
}
zend_fetch_dimension_address(EX_VAR(opline->result.var), container, _get_zval_ptr_cv_BP_VAR_R(execute_data, opline->op2.var TSRMLS_CC), IS_CV, BP_VAR_W TSRMLS_CC);
-//??? if (IS_CV == IS_VAR && 0 && READY_TO_DESTROY(free_op1.var)) {
-//??? EXTRACT_ZVAL_PTR(EX_VAR(opline->result.var));
-//??? }
+ if (IS_CV == IS_VAR && 0 && READY_TO_DESTROY(free_op1.var)) {
+ EXTRACT_ZVAL_PTR(EX_VAR(opline->result.var));
+ }
/* We are going to assign the result by reference */
if (UNEXPECTED(opline->extended_value != 0)) {
@@ -38759,9 +38759,9 @@ static int ZEND_FASTCALL ZEND_FETCH_DIM_RW_SPEC_CV_CV_HANDLER(ZEND_OPCODE_HANDL
}
zend_fetch_dimension_address(EX_VAR(opline->result.var), container, _get_zval_ptr_cv_BP_VAR_R(execute_data, opline->op2.var TSRMLS_CC), IS_CV, BP_VAR_RW TSRMLS_CC);
-//??? if (IS_CV == IS_VAR && 0 && READY_TO_DESTROY(free_op1.var)) {
-//??? EXTRACT_ZVAL_PTR(&EX_T(opline->result.var));
-//??? }
+ if (IS_CV == IS_VAR && 0 && READY_TO_DESTROY(free_op1.var)) {
+ EXTRACT_ZVAL_PTR(EX_VAR(opline->result.var));
+ }
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
@@ -38796,9 +38796,9 @@ static int ZEND_FASTCALL ZEND_FETCH_DIM_FUNC_ARG_SPEC_CV_CV_HANDLER(ZEND_OPCODE
zend_error_noreturn(E_ERROR, "Cannot use string offset as an array");
}
zend_fetch_dimension_address(EX_VAR(opline->result.var), container, _get_zval_ptr_cv_BP_VAR_R(execute_data, opline->op2.var TSRMLS_CC), IS_CV, BP_VAR_W TSRMLS_CC);
-//??? if (IS_CV == IS_VAR && 0 && READY_TO_DESTROY(free_op1.var)) {
-//??? EXTRACT_ZVAL_PTR(&EX_T(opline->result.var));
-//??? }
+ if (IS_CV == IS_VAR && 0 && READY_TO_DESTROY(free_op1.var)) {
+ EXTRACT_ZVAL_PTR(EX_VAR(opline->result.var));
+ }
} else {
@@ -38831,9 +38831,9 @@ static int ZEND_FASTCALL ZEND_FETCH_DIM_UNSET_SPEC_CV_CV_HANDLER(ZEND_OPCODE_HA
}
zend_fetch_dimension_address(EX_VAR(opline->result.var), container, _get_zval_ptr_cv_BP_VAR_R(execute_data, opline->op2.var TSRMLS_CC), IS_CV, BP_VAR_UNSET TSRMLS_CC);
-//??? if (IS_CV == IS_VAR && 0 && READY_TO_DESTROY(free_op1.var)) {
-//??? EXTRACT_ZVAL_PTR(&EX_T(opline->result.var));
-//??? }
+ if (IS_CV == IS_VAR && 0 && READY_TO_DESTROY(free_op1.var)) {
+ EXTRACT_ZVAL_PTR(EX_VAR(opline->result.var));
+ }
if (UNEXPECTED(Z_TYPE_P(EX_VAR(opline->result.var)) == IS_STR_OFFSET)) {
zend_error_noreturn(E_ERROR, "Cannot unset string offsets");
@@ -38930,9 +38930,9 @@ static int ZEND_FASTCALL ZEND_FETCH_OBJ_W_SPEC_CV_CV_HANDLER(ZEND_OPCODE_HANDLE
//??? }
-//??? if (IS_CV == IS_VAR && 0 && READY_TO_DESTROY(free_op1.var)) {
-//??? EXTRACT_ZVAL_PTR(&EX_T(opline->result.var));
-//??? }
+ if (IS_CV == IS_VAR && 0 && READY_TO_DESTROY(free_op1.var)) {
+ EXTRACT_ZVAL_PTR(EX_VAR(opline->result.var));
+ }
/* We are going to assign the result by reference */
if (opline->extended_value & ZEND_FETCH_MAKE_REF) {
@@ -38980,9 +38980,9 @@ static int ZEND_FASTCALL ZEND_FETCH_OBJ_RW_SPEC_CV_CV_HANDLER(ZEND_OPCODE_HANDL
//??? }
-//??? if (IS_CV == IS_VAR && 0 && READY_TO_DESTROY(free_op1.var)) {
-//??? EXTRACT_ZVAL_PTR(&EX_T(opline->result.var));
-//??? }
+ if (IS_CV == IS_VAR && 0 && READY_TO_DESTROY(free_op1.var)) {
+ EXTRACT_ZVAL_PTR(EX_VAR(opline->result.var));
+ }
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
@@ -39056,9 +39056,9 @@ static int ZEND_FASTCALL ZEND_FETCH_OBJ_FUNC_ARG_SPEC_CV_CV_HANDLER(ZEND_OPCODE
//??? }
-//??? if (IS_CV == IS_VAR && 0 && READY_TO_DESTROY(free_op1.var)) {
-//??? EXTRACT_ZVAL_PTR(&EX_T(opline->result.var));
-//??? }
+ if (IS_CV == IS_VAR && 0 && READY_TO_DESTROY(free_op1.var)) {
+ EXTRACT_ZVAL_PTR(EX_VAR(opline->result.var));
+ }
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
@@ -39093,9 +39093,9 @@ static int ZEND_FASTCALL ZEND_FETCH_OBJ_UNSET_SPEC_CV_CV_HANDLER(ZEND_OPCODE_HA
//??? }
-//??? if (IS_CV == IS_VAR && 0 && READY_TO_DESTROY(free_op1.var)) {
-//??? EXTRACT_ZVAL_PTR(&EX_T(opline->result.var));
-//??? }
+ if (IS_CV == IS_VAR && 0 && READY_TO_DESTROY(free_op1.var)) {
+ EXTRACT_ZVAL_PTR(EX_VAR(opline->result.var));
+ }
retval_ptr = EX_VAR(opline->result.var);
if (Z_TYPE_P(retval_ptr) == IS_INDIRECT) {