{
USE_OPLINE
zend_free_op free_op1;
- zval *container;
+ zval *container, *result;
SAVE_OPLINE();
container = _get_zval_ptr_ptr_var(opline->op1.var, &free_op1 EXECUTE_DATA_CC);
+ result = EX_VAR(opline->result.var);
+ zend_fetch_dimension_address_W(result, container, RT_CONSTANT(opline, opline->op2), IS_CONST EXECUTE_DATA_CC);
- zend_fetch_dimension_address_W(EX_VAR(opline->result.var), container, RT_CONSTANT(opline, opline->op2), IS_CONST EXECUTE_DATA_CC);
-
- if (IS_VAR == IS_VAR && READY_TO_DESTROY(free_op1)) {
- EXTRACT_ZVAL_PTR(EX_VAR(opline->result.var));
+ if (IS_VAR == IS_VAR) {
+ FREE_VAR_PTR_AND_EXTRACT_RESULT_IF_NECESSARY(free_op1, result);
}
- if (UNEXPECTED(free_op1)) {zval_ptr_dtor_nogc(free_op1);};
ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
}
{
USE_OPLINE
zend_free_op free_op1;
- zval *container;
+ zval *container, *result;
SAVE_OPLINE();
container = _get_zval_ptr_ptr_var(opline->op1.var, &free_op1 EXECUTE_DATA_CC);
+ result = EX_VAR(opline->result.var);
+ zend_fetch_dimension_address_RW(result, container, RT_CONSTANT(opline, opline->op2), IS_CONST EXECUTE_DATA_CC);
- zend_fetch_dimension_address_RW(EX_VAR(opline->result.var), container, RT_CONSTANT(opline, opline->op2), IS_CONST EXECUTE_DATA_CC);
-
- if (IS_VAR == IS_VAR && READY_TO_DESTROY(free_op1)) {
- EXTRACT_ZVAL_PTR(EX_VAR(opline->result.var));
+ if (IS_VAR == IS_VAR) {
+ FREE_VAR_PTR_AND_EXTRACT_RESULT_IF_NECESSARY(free_op1, result);
}
- if (UNEXPECTED(free_op1)) {zval_ptr_dtor_nogc(free_op1);};
ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
}
{
USE_OPLINE
zend_free_op free_op1;
- zval *container;
+ zval *container, *result;
SAVE_OPLINE();
container = _get_zval_ptr_ptr_var(opline->op1.var, &free_op1 EXECUTE_DATA_CC);
+ result = EX_VAR(opline->result.var);
+ zend_fetch_dimension_address_UNSET(result, container, RT_CONSTANT(opline, opline->op2), IS_CONST EXECUTE_DATA_CC);
- zend_fetch_dimension_address_UNSET(EX_VAR(opline->result.var), container, RT_CONSTANT(opline, opline->op2), IS_CONST EXECUTE_DATA_CC);
-
- if (IS_VAR == IS_VAR && READY_TO_DESTROY(free_op1)) {
- EXTRACT_ZVAL_PTR(EX_VAR(opline->result.var));
+ if (IS_VAR == IS_VAR) {
+ FREE_VAR_PTR_AND_EXTRACT_RESULT_IF_NECESSARY(free_op1, result);
}
- if (UNEXPECTED(free_op1)) {zval_ptr_dtor_nogc(free_op1);};
ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
}
{
USE_OPLINE
zend_free_op free_op1;
- zval *property;
- zval *container;
+ zval *property, *container, *result;
SAVE_OPLINE();
}
property = RT_CONSTANT(opline, opline->op2);
- zend_fetch_property_address(EX_VAR(opline->result.var), container, IS_VAR, property, IS_CONST, ((IS_CONST == IS_CONST) ? CACHE_ADDR(Z_CACHE_SLOT_P(property)) : NULL), BP_VAR_W);
+ result = EX_VAR(opline->result.var);
+ zend_fetch_property_address(result, container, IS_VAR, property, IS_CONST, ((IS_CONST == IS_CONST) ? CACHE_ADDR(Z_CACHE_SLOT_P(property)) : NULL), BP_VAR_W);
- if (IS_VAR == IS_VAR && READY_TO_DESTROY(free_op1)) {
- EXTRACT_ZVAL_PTR(EX_VAR(opline->result.var));
+ if (IS_VAR == IS_VAR) {
+ FREE_VAR_PTR_AND_EXTRACT_RESULT_IF_NECESSARY(free_op1, result);
}
- if (UNEXPECTED(free_op1)) {zval_ptr_dtor_nogc(free_op1);};
ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
}
{
USE_OPLINE
zend_free_op free_op1;
- zval *property;
- zval *container;
+ zval *property, *container, *result;
SAVE_OPLINE();
container = _get_zval_ptr_ptr_var(opline->op1.var, &free_op1 EXECUTE_DATA_CC);
ZEND_VM_TAIL_CALL(zend_this_not_in_object_context_helper_SPEC(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU));
}
property = RT_CONSTANT(opline, opline->op2);
- zend_fetch_property_address(EX_VAR(opline->result.var), container, IS_VAR, property, IS_CONST, ((IS_CONST == IS_CONST) ? CACHE_ADDR(Z_CACHE_SLOT_P(property)) : NULL), BP_VAR_RW);
+ result = EX_VAR(opline->result.var);
+ zend_fetch_property_address(result, container, IS_VAR, property, IS_CONST, ((IS_CONST == IS_CONST) ? CACHE_ADDR(Z_CACHE_SLOT_P(property)) : NULL), BP_VAR_RW);
- if (IS_VAR == IS_VAR && READY_TO_DESTROY(free_op1)) {
- EXTRACT_ZVAL_PTR(EX_VAR(opline->result.var));
+ if (IS_VAR == IS_VAR) {
+ FREE_VAR_PTR_AND_EXTRACT_RESULT_IF_NECESSARY(free_op1, result);
}
- if (UNEXPECTED(free_op1)) {zval_ptr_dtor_nogc(free_op1);};
ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
}
{
USE_OPLINE
zend_free_op free_op1;
- zval *container, *property;
+ zval *container, *property, *result;
SAVE_OPLINE();
container = _get_zval_ptr_ptr_var(opline->op1.var, &free_op1 EXECUTE_DATA_CC);
}
property = RT_CONSTANT(opline, opline->op2);
+ result = EX_VAR(opline->result.var);
+ zend_fetch_property_address(result, container, IS_VAR, property, IS_CONST, ((IS_CONST == IS_CONST) ? CACHE_ADDR(Z_CACHE_SLOT_P(property)) : NULL), BP_VAR_UNSET);
- zend_fetch_property_address(EX_VAR(opline->result.var), container, IS_VAR, property, IS_CONST, ((IS_CONST == IS_CONST) ? CACHE_ADDR(Z_CACHE_SLOT_P(property)) : NULL), BP_VAR_UNSET);
-
- if (IS_VAR == IS_VAR && READY_TO_DESTROY(free_op1)) {
- EXTRACT_ZVAL_PTR(EX_VAR(opline->result.var));
+ if (IS_VAR == IS_VAR) {
+ FREE_VAR_PTR_AND_EXTRACT_RESULT_IF_NECESSARY(free_op1, result);
}
- if (UNEXPECTED(free_op1)) {zval_ptr_dtor_nogc(free_op1);};
ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
}
{
USE_OPLINE
zend_free_op free_op1, free_op2;
- zval *container;
+ zval *container, *result;
SAVE_OPLINE();
container = _get_zval_ptr_ptr_var(opline->op1.var, &free_op1 EXECUTE_DATA_CC);
-
- zend_fetch_dimension_address_W(EX_VAR(opline->result.var), container, _get_zval_ptr_var(opline->op2.var, &free_op2 EXECUTE_DATA_CC), (IS_TMP_VAR|IS_VAR) EXECUTE_DATA_CC);
+ result = EX_VAR(opline->result.var);
+ zend_fetch_dimension_address_W(result, container, _get_zval_ptr_var(opline->op2.var, &free_op2 EXECUTE_DATA_CC), (IS_TMP_VAR|IS_VAR) EXECUTE_DATA_CC);
zval_ptr_dtor_nogc(free_op2);
- if (IS_VAR == IS_VAR && READY_TO_DESTROY(free_op1)) {
- EXTRACT_ZVAL_PTR(EX_VAR(opline->result.var));
+ if (IS_VAR == IS_VAR) {
+ FREE_VAR_PTR_AND_EXTRACT_RESULT_IF_NECESSARY(free_op1, result);
}
- if (UNEXPECTED(free_op1)) {zval_ptr_dtor_nogc(free_op1);};
ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
}
{
USE_OPLINE
zend_free_op free_op1, free_op2;
- zval *container;
+ zval *container, *result;
SAVE_OPLINE();
container = _get_zval_ptr_ptr_var(opline->op1.var, &free_op1 EXECUTE_DATA_CC);
-
- zend_fetch_dimension_address_RW(EX_VAR(opline->result.var), container, _get_zval_ptr_var(opline->op2.var, &free_op2 EXECUTE_DATA_CC), (IS_TMP_VAR|IS_VAR) EXECUTE_DATA_CC);
+ result = EX_VAR(opline->result.var);
+ zend_fetch_dimension_address_RW(result, container, _get_zval_ptr_var(opline->op2.var, &free_op2 EXECUTE_DATA_CC), (IS_TMP_VAR|IS_VAR) EXECUTE_DATA_CC);
zval_ptr_dtor_nogc(free_op2);
- if (IS_VAR == IS_VAR && READY_TO_DESTROY(free_op1)) {
- EXTRACT_ZVAL_PTR(EX_VAR(opline->result.var));
+ if (IS_VAR == IS_VAR) {
+ FREE_VAR_PTR_AND_EXTRACT_RESULT_IF_NECESSARY(free_op1, result);
}
- if (UNEXPECTED(free_op1)) {zval_ptr_dtor_nogc(free_op1);};
ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
}
{
USE_OPLINE
zend_free_op free_op1, free_op2;
- zval *container;
+ zval *container, *result;
SAVE_OPLINE();
container = _get_zval_ptr_ptr_var(opline->op1.var, &free_op1 EXECUTE_DATA_CC);
-
- zend_fetch_dimension_address_UNSET(EX_VAR(opline->result.var), container, _get_zval_ptr_var(opline->op2.var, &free_op2 EXECUTE_DATA_CC), (IS_TMP_VAR|IS_VAR) EXECUTE_DATA_CC);
+ result = EX_VAR(opline->result.var);
+ zend_fetch_dimension_address_UNSET(result, container, _get_zval_ptr_var(opline->op2.var, &free_op2 EXECUTE_DATA_CC), (IS_TMP_VAR|IS_VAR) EXECUTE_DATA_CC);
zval_ptr_dtor_nogc(free_op2);
- if (IS_VAR == IS_VAR && READY_TO_DESTROY(free_op1)) {
- EXTRACT_ZVAL_PTR(EX_VAR(opline->result.var));
+ if (IS_VAR == IS_VAR) {
+ FREE_VAR_PTR_AND_EXTRACT_RESULT_IF_NECESSARY(free_op1, result);
}
- if (UNEXPECTED(free_op1)) {zval_ptr_dtor_nogc(free_op1);};
ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
}
{
USE_OPLINE
zend_free_op free_op1, free_op2;
- zval *property;
- zval *container;
+ zval *property, *container, *result;
SAVE_OPLINE();
}
property = _get_zval_ptr_var(opline->op2.var, &free_op2 EXECUTE_DATA_CC);
- zend_fetch_property_address(EX_VAR(opline->result.var), container, IS_VAR, property, (IS_TMP_VAR|IS_VAR), (((IS_TMP_VAR|IS_VAR) == IS_CONST) ? CACHE_ADDR(Z_CACHE_SLOT_P(property)) : NULL), BP_VAR_W);
+ result = EX_VAR(opline->result.var);
+ zend_fetch_property_address(result, container, IS_VAR, property, (IS_TMP_VAR|IS_VAR), (((IS_TMP_VAR|IS_VAR) == IS_CONST) ? CACHE_ADDR(Z_CACHE_SLOT_P(property)) : NULL), BP_VAR_W);
zval_ptr_dtor_nogc(free_op2);
- if (IS_VAR == IS_VAR && READY_TO_DESTROY(free_op1)) {
- EXTRACT_ZVAL_PTR(EX_VAR(opline->result.var));
+ if (IS_VAR == IS_VAR) {
+ FREE_VAR_PTR_AND_EXTRACT_RESULT_IF_NECESSARY(free_op1, result);
}
- if (UNEXPECTED(free_op1)) {zval_ptr_dtor_nogc(free_op1);};
ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
}
{
USE_OPLINE
zend_free_op free_op1, free_op2;
- zval *property;
- zval *container;
+ zval *property, *container, *result;
SAVE_OPLINE();
container = _get_zval_ptr_ptr_var(opline->op1.var, &free_op1 EXECUTE_DATA_CC);
ZEND_VM_TAIL_CALL(zend_this_not_in_object_context_helper_SPEC(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU));
}
property = _get_zval_ptr_var(opline->op2.var, &free_op2 EXECUTE_DATA_CC);
- zend_fetch_property_address(EX_VAR(opline->result.var), container, IS_VAR, property, (IS_TMP_VAR|IS_VAR), (((IS_TMP_VAR|IS_VAR) == IS_CONST) ? CACHE_ADDR(Z_CACHE_SLOT_P(property)) : NULL), BP_VAR_RW);
+ result = EX_VAR(opline->result.var);
+ zend_fetch_property_address(result, container, IS_VAR, property, (IS_TMP_VAR|IS_VAR), (((IS_TMP_VAR|IS_VAR) == IS_CONST) ? CACHE_ADDR(Z_CACHE_SLOT_P(property)) : NULL), BP_VAR_RW);
zval_ptr_dtor_nogc(free_op2);
- if (IS_VAR == IS_VAR && READY_TO_DESTROY(free_op1)) {
- EXTRACT_ZVAL_PTR(EX_VAR(opline->result.var));
+ if (IS_VAR == IS_VAR) {
+ FREE_VAR_PTR_AND_EXTRACT_RESULT_IF_NECESSARY(free_op1, result);
}
- if (UNEXPECTED(free_op1)) {zval_ptr_dtor_nogc(free_op1);};
ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
}
{
USE_OPLINE
zend_free_op free_op1, free_op2;
- zval *container, *property;
+ zval *container, *property, *result;
SAVE_OPLINE();
container = _get_zval_ptr_ptr_var(opline->op1.var, &free_op1 EXECUTE_DATA_CC);
}
property = _get_zval_ptr_var(opline->op2.var, &free_op2 EXECUTE_DATA_CC);
-
- zend_fetch_property_address(EX_VAR(opline->result.var), container, IS_VAR, property, (IS_TMP_VAR|IS_VAR), (((IS_TMP_VAR|IS_VAR) == IS_CONST) ? CACHE_ADDR(Z_CACHE_SLOT_P(property)) : NULL), BP_VAR_UNSET);
+ result = EX_VAR(opline->result.var);
+ zend_fetch_property_address(result, container, IS_VAR, property, (IS_TMP_VAR|IS_VAR), (((IS_TMP_VAR|IS_VAR) == IS_CONST) ? CACHE_ADDR(Z_CACHE_SLOT_P(property)) : NULL), BP_VAR_UNSET);
zval_ptr_dtor_nogc(free_op2);
- if (IS_VAR == IS_VAR && READY_TO_DESTROY(free_op1)) {
- EXTRACT_ZVAL_PTR(EX_VAR(opline->result.var));
+ if (IS_VAR == IS_VAR) {
+ FREE_VAR_PTR_AND_EXTRACT_RESULT_IF_NECESSARY(free_op1, result);
}
- if (UNEXPECTED(free_op1)) {zval_ptr_dtor_nogc(free_op1);};
ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
}
{
USE_OPLINE
zend_free_op free_op1;
- zval *container;
+ zval *container, *result;
SAVE_OPLINE();
container = _get_zval_ptr_ptr_var(opline->op1.var, &free_op1 EXECUTE_DATA_CC);
+ result = EX_VAR(opline->result.var);
+ zend_fetch_dimension_address_W(result, container, NULL, IS_UNUSED EXECUTE_DATA_CC);
- zend_fetch_dimension_address_W(EX_VAR(opline->result.var), container, NULL, IS_UNUSED EXECUTE_DATA_CC);
-
- if (IS_VAR == IS_VAR && READY_TO_DESTROY(free_op1)) {
- EXTRACT_ZVAL_PTR(EX_VAR(opline->result.var));
+ if (IS_VAR == IS_VAR) {
+ FREE_VAR_PTR_AND_EXTRACT_RESULT_IF_NECESSARY(free_op1, result);
}
- if (UNEXPECTED(free_op1)) {zval_ptr_dtor_nogc(free_op1);};
ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
}
{
USE_OPLINE
zend_free_op free_op1;
- zval *container;
+ zval *container, *result;
SAVE_OPLINE();
container = _get_zval_ptr_ptr_var(opline->op1.var, &free_op1 EXECUTE_DATA_CC);
+ result = EX_VAR(opline->result.var);
+ zend_fetch_dimension_address_RW(result, container, NULL, IS_UNUSED EXECUTE_DATA_CC);
- zend_fetch_dimension_address_RW(EX_VAR(opline->result.var), container, NULL, IS_UNUSED EXECUTE_DATA_CC);
-
- if (IS_VAR == IS_VAR && READY_TO_DESTROY(free_op1)) {
- EXTRACT_ZVAL_PTR(EX_VAR(opline->result.var));
+ if (IS_VAR == IS_VAR) {
+ FREE_VAR_PTR_AND_EXTRACT_RESULT_IF_NECESSARY(free_op1, result);
}
- if (UNEXPECTED(free_op1)) {zval_ptr_dtor_nogc(free_op1);};
ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
}
{
USE_OPLINE
zend_free_op free_op1;
- zval *container;
+ zval *container, *result;
SAVE_OPLINE();
container = _get_zval_ptr_ptr_var(opline->op1.var, &free_op1 EXECUTE_DATA_CC);
+ result = EX_VAR(opline->result.var);
+ zend_fetch_dimension_address_W(result, container, _get_zval_ptr_cv_undef(opline->op2.var EXECUTE_DATA_CC), IS_CV EXECUTE_DATA_CC);
- zend_fetch_dimension_address_W(EX_VAR(opline->result.var), container, _get_zval_ptr_cv_undef(opline->op2.var EXECUTE_DATA_CC), IS_CV EXECUTE_DATA_CC);
-
- if (IS_VAR == IS_VAR && READY_TO_DESTROY(free_op1)) {
- EXTRACT_ZVAL_PTR(EX_VAR(opline->result.var));
+ if (IS_VAR == IS_VAR) {
+ FREE_VAR_PTR_AND_EXTRACT_RESULT_IF_NECESSARY(free_op1, result);
}
- if (UNEXPECTED(free_op1)) {zval_ptr_dtor_nogc(free_op1);};
ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
}
{
USE_OPLINE
zend_free_op free_op1;
- zval *container;
+ zval *container, *result;
SAVE_OPLINE();
container = _get_zval_ptr_ptr_var(opline->op1.var, &free_op1 EXECUTE_DATA_CC);
+ result = EX_VAR(opline->result.var);
+ zend_fetch_dimension_address_RW(result, container, _get_zval_ptr_cv_undef(opline->op2.var EXECUTE_DATA_CC), IS_CV EXECUTE_DATA_CC);
- zend_fetch_dimension_address_RW(EX_VAR(opline->result.var), container, _get_zval_ptr_cv_undef(opline->op2.var EXECUTE_DATA_CC), IS_CV EXECUTE_DATA_CC);
-
- if (IS_VAR == IS_VAR && READY_TO_DESTROY(free_op1)) {
- EXTRACT_ZVAL_PTR(EX_VAR(opline->result.var));
+ if (IS_VAR == IS_VAR) {
+ FREE_VAR_PTR_AND_EXTRACT_RESULT_IF_NECESSARY(free_op1, result);
}
- if (UNEXPECTED(free_op1)) {zval_ptr_dtor_nogc(free_op1);};
ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
}
{
USE_OPLINE
zend_free_op free_op1;
- zval *container;
+ zval *container, *result;
SAVE_OPLINE();
container = _get_zval_ptr_ptr_var(opline->op1.var, &free_op1 EXECUTE_DATA_CC);
+ result = EX_VAR(opline->result.var);
+ zend_fetch_dimension_address_UNSET(result, container, _get_zval_ptr_cv_undef(opline->op2.var EXECUTE_DATA_CC), IS_CV EXECUTE_DATA_CC);
- zend_fetch_dimension_address_UNSET(EX_VAR(opline->result.var), container, _get_zval_ptr_cv_undef(opline->op2.var EXECUTE_DATA_CC), IS_CV EXECUTE_DATA_CC);
-
- if (IS_VAR == IS_VAR && READY_TO_DESTROY(free_op1)) {
- EXTRACT_ZVAL_PTR(EX_VAR(opline->result.var));
+ if (IS_VAR == IS_VAR) {
+ FREE_VAR_PTR_AND_EXTRACT_RESULT_IF_NECESSARY(free_op1, result);
}
- if (UNEXPECTED(free_op1)) {zval_ptr_dtor_nogc(free_op1);};
ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
}
{
USE_OPLINE
zend_free_op free_op1;
- zval *property;
- zval *container;
+ zval *property, *container, *result;
SAVE_OPLINE();
}
property = _get_zval_ptr_cv_BP_VAR_R(opline->op2.var EXECUTE_DATA_CC);
- zend_fetch_property_address(EX_VAR(opline->result.var), container, IS_VAR, property, IS_CV, ((IS_CV == IS_CONST) ? CACHE_ADDR(Z_CACHE_SLOT_P(property)) : NULL), BP_VAR_W);
+ result = EX_VAR(opline->result.var);
+ zend_fetch_property_address(result, container, IS_VAR, property, IS_CV, ((IS_CV == IS_CONST) ? CACHE_ADDR(Z_CACHE_SLOT_P(property)) : NULL), BP_VAR_W);
- if (IS_VAR == IS_VAR && READY_TO_DESTROY(free_op1)) {
- EXTRACT_ZVAL_PTR(EX_VAR(opline->result.var));
+ if (IS_VAR == IS_VAR) {
+ FREE_VAR_PTR_AND_EXTRACT_RESULT_IF_NECESSARY(free_op1, result);
}
- if (UNEXPECTED(free_op1)) {zval_ptr_dtor_nogc(free_op1);};
ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
}
{
USE_OPLINE
zend_free_op free_op1;
- zval *property;
- zval *container;
+ zval *property, *container, *result;
SAVE_OPLINE();
container = _get_zval_ptr_ptr_var(opline->op1.var, &free_op1 EXECUTE_DATA_CC);
ZEND_VM_TAIL_CALL(zend_this_not_in_object_context_helper_SPEC(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU));
}
property = _get_zval_ptr_cv_BP_VAR_R(opline->op2.var EXECUTE_DATA_CC);
- zend_fetch_property_address(EX_VAR(opline->result.var), container, IS_VAR, property, IS_CV, ((IS_CV == IS_CONST) ? CACHE_ADDR(Z_CACHE_SLOT_P(property)) : NULL), BP_VAR_RW);
+ result = EX_VAR(opline->result.var);
+ zend_fetch_property_address(result, container, IS_VAR, property, IS_CV, ((IS_CV == IS_CONST) ? CACHE_ADDR(Z_CACHE_SLOT_P(property)) : NULL), BP_VAR_RW);
- if (IS_VAR == IS_VAR && READY_TO_DESTROY(free_op1)) {
- EXTRACT_ZVAL_PTR(EX_VAR(opline->result.var));
+ if (IS_VAR == IS_VAR) {
+ FREE_VAR_PTR_AND_EXTRACT_RESULT_IF_NECESSARY(free_op1, result);
}
- if (UNEXPECTED(free_op1)) {zval_ptr_dtor_nogc(free_op1);};
ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
}
{
USE_OPLINE
zend_free_op free_op1;
- zval *container, *property;
+ zval *container, *property, *result;
SAVE_OPLINE();
container = _get_zval_ptr_ptr_var(opline->op1.var, &free_op1 EXECUTE_DATA_CC);
}
property = _get_zval_ptr_cv_BP_VAR_R(opline->op2.var EXECUTE_DATA_CC);
+ result = EX_VAR(opline->result.var);
+ zend_fetch_property_address(result, container, IS_VAR, property, IS_CV, ((IS_CV == IS_CONST) ? CACHE_ADDR(Z_CACHE_SLOT_P(property)) : NULL), BP_VAR_UNSET);
- zend_fetch_property_address(EX_VAR(opline->result.var), container, IS_VAR, property, IS_CV, ((IS_CV == IS_CONST) ? CACHE_ADDR(Z_CACHE_SLOT_P(property)) : NULL), BP_VAR_UNSET);
-
- if (IS_VAR == IS_VAR && READY_TO_DESTROY(free_op1)) {
- EXTRACT_ZVAL_PTR(EX_VAR(opline->result.var));
+ if (IS_VAR == IS_VAR) {
+ FREE_VAR_PTR_AND_EXTRACT_RESULT_IF_NECESSARY(free_op1, result);
}
- if (UNEXPECTED(free_op1)) {zval_ptr_dtor_nogc(free_op1);};
ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
}
{
USE_OPLINE
zend_free_op free_op1;
- zval *property;
- zval *container;
+ zval *property, *container, *result;
SAVE_OPLINE();
}
property = RT_CONSTANT(opline, opline->op2);
- zend_fetch_property_address(EX_VAR(opline->result.var), container, IS_UNUSED, property, IS_CONST, ((IS_CONST == IS_CONST) ? CACHE_ADDR(Z_CACHE_SLOT_P(property)) : NULL), BP_VAR_W);
+ result = EX_VAR(opline->result.var);
+ zend_fetch_property_address(result, container, IS_UNUSED, property, IS_CONST, ((IS_CONST == IS_CONST) ? CACHE_ADDR(Z_CACHE_SLOT_P(property)) : NULL), BP_VAR_W);
- if (IS_UNUSED == IS_VAR && READY_TO_DESTROY(free_op1)) {
- EXTRACT_ZVAL_PTR(EX_VAR(opline->result.var));
+ if (IS_UNUSED == IS_VAR) {
+ FREE_VAR_PTR_AND_EXTRACT_RESULT_IF_NECESSARY(free_op1, result);
}
-
ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
}
{
USE_OPLINE
zend_free_op free_op1;
- zval *property;
- zval *container;
+ zval *property, *container, *result;
SAVE_OPLINE();
container = _get_obj_zval_ptr_unused(EXECUTE_DATA_C);
ZEND_VM_TAIL_CALL(zend_this_not_in_object_context_helper_SPEC(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU));
}
property = RT_CONSTANT(opline, opline->op2);
- zend_fetch_property_address(EX_VAR(opline->result.var), container, IS_UNUSED, property, IS_CONST, ((IS_CONST == IS_CONST) ? CACHE_ADDR(Z_CACHE_SLOT_P(property)) : NULL), BP_VAR_RW);
+ result = EX_VAR(opline->result.var);
+ zend_fetch_property_address(result, container, IS_UNUSED, property, IS_CONST, ((IS_CONST == IS_CONST) ? CACHE_ADDR(Z_CACHE_SLOT_P(property)) : NULL), BP_VAR_RW);
- if (IS_UNUSED == IS_VAR && READY_TO_DESTROY(free_op1)) {
- EXTRACT_ZVAL_PTR(EX_VAR(opline->result.var));
+ if (IS_UNUSED == IS_VAR) {
+ FREE_VAR_PTR_AND_EXTRACT_RESULT_IF_NECESSARY(free_op1, result);
}
-
ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
}
{
USE_OPLINE
zend_free_op free_op1;
- zval *container, *property;
+ zval *container, *property, *result;
SAVE_OPLINE();
container = _get_obj_zval_ptr_unused(EXECUTE_DATA_C);
}
property = RT_CONSTANT(opline, opline->op2);
+ result = EX_VAR(opline->result.var);
+ zend_fetch_property_address(result, container, IS_UNUSED, property, IS_CONST, ((IS_CONST == IS_CONST) ? CACHE_ADDR(Z_CACHE_SLOT_P(property)) : NULL), BP_VAR_UNSET);
- zend_fetch_property_address(EX_VAR(opline->result.var), container, IS_UNUSED, property, IS_CONST, ((IS_CONST == IS_CONST) ? CACHE_ADDR(Z_CACHE_SLOT_P(property)) : NULL), BP_VAR_UNSET);
-
- if (IS_UNUSED == IS_VAR && READY_TO_DESTROY(free_op1)) {
- EXTRACT_ZVAL_PTR(EX_VAR(opline->result.var));
+ if (IS_UNUSED == IS_VAR) {
+ FREE_VAR_PTR_AND_EXTRACT_RESULT_IF_NECESSARY(free_op1, result);
}
-
ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
}
{
USE_OPLINE
zend_free_op free_op1, free_op2;
- zval *property;
- zval *container;
+ zval *property, *container, *result;
SAVE_OPLINE();
}
property = _get_zval_ptr_var(opline->op2.var, &free_op2 EXECUTE_DATA_CC);
- zend_fetch_property_address(EX_VAR(opline->result.var), container, IS_UNUSED, property, (IS_TMP_VAR|IS_VAR), (((IS_TMP_VAR|IS_VAR) == IS_CONST) ? CACHE_ADDR(Z_CACHE_SLOT_P(property)) : NULL), BP_VAR_W);
+ result = EX_VAR(opline->result.var);
+ zend_fetch_property_address(result, container, IS_UNUSED, property, (IS_TMP_VAR|IS_VAR), (((IS_TMP_VAR|IS_VAR) == IS_CONST) ? CACHE_ADDR(Z_CACHE_SLOT_P(property)) : NULL), BP_VAR_W);
zval_ptr_dtor_nogc(free_op2);
- if (IS_UNUSED == IS_VAR && READY_TO_DESTROY(free_op1)) {
- EXTRACT_ZVAL_PTR(EX_VAR(opline->result.var));
+ if (IS_UNUSED == IS_VAR) {
+ FREE_VAR_PTR_AND_EXTRACT_RESULT_IF_NECESSARY(free_op1, result);
}
-
ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
}
{
USE_OPLINE
zend_free_op free_op1, free_op2;
- zval *property;
- zval *container;
+ zval *property, *container, *result;
SAVE_OPLINE();
container = _get_obj_zval_ptr_unused(EXECUTE_DATA_C);
ZEND_VM_TAIL_CALL(zend_this_not_in_object_context_helper_SPEC(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU));
}
property = _get_zval_ptr_var(opline->op2.var, &free_op2 EXECUTE_DATA_CC);
- zend_fetch_property_address(EX_VAR(opline->result.var), container, IS_UNUSED, property, (IS_TMP_VAR|IS_VAR), (((IS_TMP_VAR|IS_VAR) == IS_CONST) ? CACHE_ADDR(Z_CACHE_SLOT_P(property)) : NULL), BP_VAR_RW);
+ result = EX_VAR(opline->result.var);
+ zend_fetch_property_address(result, container, IS_UNUSED, property, (IS_TMP_VAR|IS_VAR), (((IS_TMP_VAR|IS_VAR) == IS_CONST) ? CACHE_ADDR(Z_CACHE_SLOT_P(property)) : NULL), BP_VAR_RW);
zval_ptr_dtor_nogc(free_op2);
- if (IS_UNUSED == IS_VAR && READY_TO_DESTROY(free_op1)) {
- EXTRACT_ZVAL_PTR(EX_VAR(opline->result.var));
+ if (IS_UNUSED == IS_VAR) {
+ FREE_VAR_PTR_AND_EXTRACT_RESULT_IF_NECESSARY(free_op1, result);
}
-
ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
}
{
USE_OPLINE
zend_free_op free_op1, free_op2;
- zval *container, *property;
+ zval *container, *property, *result;
SAVE_OPLINE();
container = _get_obj_zval_ptr_unused(EXECUTE_DATA_C);
}
property = _get_zval_ptr_var(opline->op2.var, &free_op2 EXECUTE_DATA_CC);
-
- zend_fetch_property_address(EX_VAR(opline->result.var), container, IS_UNUSED, property, (IS_TMP_VAR|IS_VAR), (((IS_TMP_VAR|IS_VAR) == IS_CONST) ? CACHE_ADDR(Z_CACHE_SLOT_P(property)) : NULL), BP_VAR_UNSET);
+ result = EX_VAR(opline->result.var);
+ zend_fetch_property_address(result, container, IS_UNUSED, property, (IS_TMP_VAR|IS_VAR), (((IS_TMP_VAR|IS_VAR) == IS_CONST) ? CACHE_ADDR(Z_CACHE_SLOT_P(property)) : NULL), BP_VAR_UNSET);
zval_ptr_dtor_nogc(free_op2);
- if (IS_UNUSED == IS_VAR && READY_TO_DESTROY(free_op1)) {
- EXTRACT_ZVAL_PTR(EX_VAR(opline->result.var));
+ if (IS_UNUSED == IS_VAR) {
+ FREE_VAR_PTR_AND_EXTRACT_RESULT_IF_NECESSARY(free_op1, result);
}
-
ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
}
{
USE_OPLINE
zend_free_op free_op1;
- zval *property;
- zval *container;
+ zval *property, *container, *result;
SAVE_OPLINE();
}
property = _get_zval_ptr_cv_BP_VAR_R(opline->op2.var EXECUTE_DATA_CC);
- zend_fetch_property_address(EX_VAR(opline->result.var), container, IS_UNUSED, property, IS_CV, ((IS_CV == IS_CONST) ? CACHE_ADDR(Z_CACHE_SLOT_P(property)) : NULL), BP_VAR_W);
+ result = EX_VAR(opline->result.var);
+ zend_fetch_property_address(result, container, IS_UNUSED, property, IS_CV, ((IS_CV == IS_CONST) ? CACHE_ADDR(Z_CACHE_SLOT_P(property)) : NULL), BP_VAR_W);
- if (IS_UNUSED == IS_VAR && READY_TO_DESTROY(free_op1)) {
- EXTRACT_ZVAL_PTR(EX_VAR(opline->result.var));
+ if (IS_UNUSED == IS_VAR) {
+ FREE_VAR_PTR_AND_EXTRACT_RESULT_IF_NECESSARY(free_op1, result);
}
-
ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
}
{
USE_OPLINE
zend_free_op free_op1;
- zval *property;
- zval *container;
+ zval *property, *container, *result;
SAVE_OPLINE();
container = _get_obj_zval_ptr_unused(EXECUTE_DATA_C);
ZEND_VM_TAIL_CALL(zend_this_not_in_object_context_helper_SPEC(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU));
}
property = _get_zval_ptr_cv_BP_VAR_R(opline->op2.var EXECUTE_DATA_CC);
- zend_fetch_property_address(EX_VAR(opline->result.var), container, IS_UNUSED, property, IS_CV, ((IS_CV == IS_CONST) ? CACHE_ADDR(Z_CACHE_SLOT_P(property)) : NULL), BP_VAR_RW);
+ result = EX_VAR(opline->result.var);
+ zend_fetch_property_address(result, container, IS_UNUSED, property, IS_CV, ((IS_CV == IS_CONST) ? CACHE_ADDR(Z_CACHE_SLOT_P(property)) : NULL), BP_VAR_RW);
- if (IS_UNUSED == IS_VAR && READY_TO_DESTROY(free_op1)) {
- EXTRACT_ZVAL_PTR(EX_VAR(opline->result.var));
+ if (IS_UNUSED == IS_VAR) {
+ FREE_VAR_PTR_AND_EXTRACT_RESULT_IF_NECESSARY(free_op1, result);
}
-
ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
}
{
USE_OPLINE
zend_free_op free_op1;
- zval *container, *property;
+ zval *container, *property, *result;
SAVE_OPLINE();
container = _get_obj_zval_ptr_unused(EXECUTE_DATA_C);
}
property = _get_zval_ptr_cv_BP_VAR_R(opline->op2.var EXECUTE_DATA_CC);
+ result = EX_VAR(opline->result.var);
+ zend_fetch_property_address(result, container, IS_UNUSED, property, IS_CV, ((IS_CV == IS_CONST) ? CACHE_ADDR(Z_CACHE_SLOT_P(property)) : NULL), BP_VAR_UNSET);
- zend_fetch_property_address(EX_VAR(opline->result.var), container, IS_UNUSED, property, IS_CV, ((IS_CV == IS_CONST) ? CACHE_ADDR(Z_CACHE_SLOT_P(property)) : NULL), BP_VAR_UNSET);
-
- if (IS_UNUSED == IS_VAR && READY_TO_DESTROY(free_op1)) {
- EXTRACT_ZVAL_PTR(EX_VAR(opline->result.var));
+ if (IS_UNUSED == IS_VAR) {
+ FREE_VAR_PTR_AND_EXTRACT_RESULT_IF_NECESSARY(free_op1, result);
}
-
ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
}
{
USE_OPLINE
zend_free_op free_op1;
- zval *container;
+ zval *container, *result;
SAVE_OPLINE();
container = _get_zval_ptr_cv_undef_BP_VAR_W(opline->op1.var EXECUTE_DATA_CC);
+ result = EX_VAR(opline->result.var);
+ zend_fetch_dimension_address_W(result, container, RT_CONSTANT(opline, opline->op2), IS_CONST EXECUTE_DATA_CC);
- zend_fetch_dimension_address_W(EX_VAR(opline->result.var), container, RT_CONSTANT(opline, opline->op2), IS_CONST EXECUTE_DATA_CC);
-
- if (IS_CV == IS_VAR && READY_TO_DESTROY(free_op1)) {
- EXTRACT_ZVAL_PTR(EX_VAR(opline->result.var));
+ if (IS_CV == IS_VAR) {
+ FREE_VAR_PTR_AND_EXTRACT_RESULT_IF_NECESSARY(free_op1, result);
}
-
ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
}
{
USE_OPLINE
zend_free_op free_op1;
- zval *container;
+ zval *container, *result;
SAVE_OPLINE();
container = _get_zval_ptr_cv_undef_BP_VAR_RW(opline->op1.var EXECUTE_DATA_CC);
+ result = EX_VAR(opline->result.var);
+ zend_fetch_dimension_address_RW(result, container, RT_CONSTANT(opline, opline->op2), IS_CONST EXECUTE_DATA_CC);
- zend_fetch_dimension_address_RW(EX_VAR(opline->result.var), container, RT_CONSTANT(opline, opline->op2), IS_CONST EXECUTE_DATA_CC);
-
- if (IS_CV == IS_VAR && READY_TO_DESTROY(free_op1)) {
- EXTRACT_ZVAL_PTR(EX_VAR(opline->result.var));
+ if (IS_CV == IS_VAR) {
+ FREE_VAR_PTR_AND_EXTRACT_RESULT_IF_NECESSARY(free_op1, result);
}
-
ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
}
{
USE_OPLINE
zend_free_op free_op1;
- zval *container;
+ zval *container, *result;
SAVE_OPLINE();
container = _get_zval_ptr_cv_undef_BP_VAR_UNSET(opline->op1.var EXECUTE_DATA_CC);
+ result = EX_VAR(opline->result.var);
+ zend_fetch_dimension_address_UNSET(result, container, RT_CONSTANT(opline, opline->op2), IS_CONST EXECUTE_DATA_CC);
- zend_fetch_dimension_address_UNSET(EX_VAR(opline->result.var), container, RT_CONSTANT(opline, opline->op2), IS_CONST EXECUTE_DATA_CC);
-
- if (IS_CV == IS_VAR && READY_TO_DESTROY(free_op1)) {
- EXTRACT_ZVAL_PTR(EX_VAR(opline->result.var));
+ if (IS_CV == IS_VAR) {
+ FREE_VAR_PTR_AND_EXTRACT_RESULT_IF_NECESSARY(free_op1, result);
}
-
ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
}
{
USE_OPLINE
zend_free_op free_op1;
- zval *property;
- zval *container;
+ zval *property, *container, *result;
SAVE_OPLINE();
}
property = RT_CONSTANT(opline, opline->op2);
- zend_fetch_property_address(EX_VAR(opline->result.var), container, IS_CV, property, IS_CONST, ((IS_CONST == IS_CONST) ? CACHE_ADDR(Z_CACHE_SLOT_P(property)) : NULL), BP_VAR_W);
+ result = EX_VAR(opline->result.var);
+ zend_fetch_property_address(result, container, IS_CV, property, IS_CONST, ((IS_CONST == IS_CONST) ? CACHE_ADDR(Z_CACHE_SLOT_P(property)) : NULL), BP_VAR_W);
- if (IS_CV == IS_VAR && READY_TO_DESTROY(free_op1)) {
- EXTRACT_ZVAL_PTR(EX_VAR(opline->result.var));
+ if (IS_CV == IS_VAR) {
+ FREE_VAR_PTR_AND_EXTRACT_RESULT_IF_NECESSARY(free_op1, result);
}
-
ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
}
{
USE_OPLINE
zend_free_op free_op1;
- zval *property;
- zval *container;
+ zval *property, *container, *result;
SAVE_OPLINE();
container = _get_zval_ptr_cv_BP_VAR_RW(opline->op1.var EXECUTE_DATA_CC);
ZEND_VM_TAIL_CALL(zend_this_not_in_object_context_helper_SPEC(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU));
}
property = RT_CONSTANT(opline, opline->op2);
- zend_fetch_property_address(EX_VAR(opline->result.var), container, IS_CV, property, IS_CONST, ((IS_CONST == IS_CONST) ? CACHE_ADDR(Z_CACHE_SLOT_P(property)) : NULL), BP_VAR_RW);
+ result = EX_VAR(opline->result.var);
+ zend_fetch_property_address(result, container, IS_CV, property, IS_CONST, ((IS_CONST == IS_CONST) ? CACHE_ADDR(Z_CACHE_SLOT_P(property)) : NULL), BP_VAR_RW);
- if (IS_CV == IS_VAR && READY_TO_DESTROY(free_op1)) {
- EXTRACT_ZVAL_PTR(EX_VAR(opline->result.var));
+ if (IS_CV == IS_VAR) {
+ FREE_VAR_PTR_AND_EXTRACT_RESULT_IF_NECESSARY(free_op1, result);
}
-
ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
}
{
USE_OPLINE
zend_free_op free_op1;
- zval *container, *property;
+ zval *container, *property, *result;
SAVE_OPLINE();
container = _get_zval_ptr_cv_BP_VAR_UNSET(opline->op1.var EXECUTE_DATA_CC);
}
property = RT_CONSTANT(opline, opline->op2);
+ result = EX_VAR(opline->result.var);
+ zend_fetch_property_address(result, container, IS_CV, property, IS_CONST, ((IS_CONST == IS_CONST) ? CACHE_ADDR(Z_CACHE_SLOT_P(property)) : NULL), BP_VAR_UNSET);
- zend_fetch_property_address(EX_VAR(opline->result.var), container, IS_CV, property, IS_CONST, ((IS_CONST == IS_CONST) ? CACHE_ADDR(Z_CACHE_SLOT_P(property)) : NULL), BP_VAR_UNSET);
-
- if (IS_CV == IS_VAR && READY_TO_DESTROY(free_op1)) {
- EXTRACT_ZVAL_PTR(EX_VAR(opline->result.var));
+ if (IS_CV == IS_VAR) {
+ FREE_VAR_PTR_AND_EXTRACT_RESULT_IF_NECESSARY(free_op1, result);
}
-
ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
}
{
USE_OPLINE
zend_free_op free_op1, free_op2;
- zval *container;
+ zval *container, *result;
SAVE_OPLINE();
container = _get_zval_ptr_cv_undef_BP_VAR_W(opline->op1.var EXECUTE_DATA_CC);
-
- zend_fetch_dimension_address_W(EX_VAR(opline->result.var), container, _get_zval_ptr_var(opline->op2.var, &free_op2 EXECUTE_DATA_CC), (IS_TMP_VAR|IS_VAR) EXECUTE_DATA_CC);
+ result = EX_VAR(opline->result.var);
+ zend_fetch_dimension_address_W(result, container, _get_zval_ptr_var(opline->op2.var, &free_op2 EXECUTE_DATA_CC), (IS_TMP_VAR|IS_VAR) EXECUTE_DATA_CC);
zval_ptr_dtor_nogc(free_op2);
- if (IS_CV == IS_VAR && READY_TO_DESTROY(free_op1)) {
- EXTRACT_ZVAL_PTR(EX_VAR(opline->result.var));
+ if (IS_CV == IS_VAR) {
+ FREE_VAR_PTR_AND_EXTRACT_RESULT_IF_NECESSARY(free_op1, result);
}
-
ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
}
{
USE_OPLINE
zend_free_op free_op1, free_op2;
- zval *container;
+ zval *container, *result;
SAVE_OPLINE();
container = _get_zval_ptr_cv_undef_BP_VAR_RW(opline->op1.var EXECUTE_DATA_CC);
-
- zend_fetch_dimension_address_RW(EX_VAR(opline->result.var), container, _get_zval_ptr_var(opline->op2.var, &free_op2 EXECUTE_DATA_CC), (IS_TMP_VAR|IS_VAR) EXECUTE_DATA_CC);
+ result = EX_VAR(opline->result.var);
+ zend_fetch_dimension_address_RW(result, container, _get_zval_ptr_var(opline->op2.var, &free_op2 EXECUTE_DATA_CC), (IS_TMP_VAR|IS_VAR) EXECUTE_DATA_CC);
zval_ptr_dtor_nogc(free_op2);
- if (IS_CV == IS_VAR && READY_TO_DESTROY(free_op1)) {
- EXTRACT_ZVAL_PTR(EX_VAR(opline->result.var));
+ if (IS_CV == IS_VAR) {
+ FREE_VAR_PTR_AND_EXTRACT_RESULT_IF_NECESSARY(free_op1, result);
}
-
ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
}
{
USE_OPLINE
zend_free_op free_op1, free_op2;
- zval *container;
+ zval *container, *result;
SAVE_OPLINE();
container = _get_zval_ptr_cv_undef_BP_VAR_UNSET(opline->op1.var EXECUTE_DATA_CC);
-
- zend_fetch_dimension_address_UNSET(EX_VAR(opline->result.var), container, _get_zval_ptr_var(opline->op2.var, &free_op2 EXECUTE_DATA_CC), (IS_TMP_VAR|IS_VAR) EXECUTE_DATA_CC);
+ result = EX_VAR(opline->result.var);
+ zend_fetch_dimension_address_UNSET(result, container, _get_zval_ptr_var(opline->op2.var, &free_op2 EXECUTE_DATA_CC), (IS_TMP_VAR|IS_VAR) EXECUTE_DATA_CC);
zval_ptr_dtor_nogc(free_op2);
- if (IS_CV == IS_VAR && READY_TO_DESTROY(free_op1)) {
- EXTRACT_ZVAL_PTR(EX_VAR(opline->result.var));
+ if (IS_CV == IS_VAR) {
+ FREE_VAR_PTR_AND_EXTRACT_RESULT_IF_NECESSARY(free_op1, result);
}
-
ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
}
{
USE_OPLINE
zend_free_op free_op1, free_op2;
- zval *property;
- zval *container;
+ zval *property, *container, *result;
SAVE_OPLINE();
}
property = _get_zval_ptr_var(opline->op2.var, &free_op2 EXECUTE_DATA_CC);
- zend_fetch_property_address(EX_VAR(opline->result.var), container, IS_CV, property, (IS_TMP_VAR|IS_VAR), (((IS_TMP_VAR|IS_VAR) == IS_CONST) ? CACHE_ADDR(Z_CACHE_SLOT_P(property)) : NULL), BP_VAR_W);
+ result = EX_VAR(opline->result.var);
+ zend_fetch_property_address(result, container, IS_CV, property, (IS_TMP_VAR|IS_VAR), (((IS_TMP_VAR|IS_VAR) == IS_CONST) ? CACHE_ADDR(Z_CACHE_SLOT_P(property)) : NULL), BP_VAR_W);
zval_ptr_dtor_nogc(free_op2);
- if (IS_CV == IS_VAR && READY_TO_DESTROY(free_op1)) {
- EXTRACT_ZVAL_PTR(EX_VAR(opline->result.var));
+ if (IS_CV == IS_VAR) {
+ FREE_VAR_PTR_AND_EXTRACT_RESULT_IF_NECESSARY(free_op1, result);
}
-
ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
}
{
USE_OPLINE
zend_free_op free_op1, free_op2;
- zval *property;
- zval *container;
+ zval *property, *container, *result;
SAVE_OPLINE();
container = _get_zval_ptr_cv_BP_VAR_RW(opline->op1.var EXECUTE_DATA_CC);
ZEND_VM_TAIL_CALL(zend_this_not_in_object_context_helper_SPEC(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU));
}
property = _get_zval_ptr_var(opline->op2.var, &free_op2 EXECUTE_DATA_CC);
- zend_fetch_property_address(EX_VAR(opline->result.var), container, IS_CV, property, (IS_TMP_VAR|IS_VAR), (((IS_TMP_VAR|IS_VAR) == IS_CONST) ? CACHE_ADDR(Z_CACHE_SLOT_P(property)) : NULL), BP_VAR_RW);
+ result = EX_VAR(opline->result.var);
+ zend_fetch_property_address(result, container, IS_CV, property, (IS_TMP_VAR|IS_VAR), (((IS_TMP_VAR|IS_VAR) == IS_CONST) ? CACHE_ADDR(Z_CACHE_SLOT_P(property)) : NULL), BP_VAR_RW);
zval_ptr_dtor_nogc(free_op2);
- if (IS_CV == IS_VAR && READY_TO_DESTROY(free_op1)) {
- EXTRACT_ZVAL_PTR(EX_VAR(opline->result.var));
+ if (IS_CV == IS_VAR) {
+ FREE_VAR_PTR_AND_EXTRACT_RESULT_IF_NECESSARY(free_op1, result);
}
-
ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
}
{
USE_OPLINE
zend_free_op free_op1, free_op2;
- zval *container, *property;
+ zval *container, *property, *result;
SAVE_OPLINE();
container = _get_zval_ptr_cv_BP_VAR_UNSET(opline->op1.var EXECUTE_DATA_CC);
}
property = _get_zval_ptr_var(opline->op2.var, &free_op2 EXECUTE_DATA_CC);
-
- zend_fetch_property_address(EX_VAR(opline->result.var), container, IS_CV, property, (IS_TMP_VAR|IS_VAR), (((IS_TMP_VAR|IS_VAR) == IS_CONST) ? CACHE_ADDR(Z_CACHE_SLOT_P(property)) : NULL), BP_VAR_UNSET);
+ result = EX_VAR(opline->result.var);
+ zend_fetch_property_address(result, container, IS_CV, property, (IS_TMP_VAR|IS_VAR), (((IS_TMP_VAR|IS_VAR) == IS_CONST) ? CACHE_ADDR(Z_CACHE_SLOT_P(property)) : NULL), BP_VAR_UNSET);
zval_ptr_dtor_nogc(free_op2);
- if (IS_CV == IS_VAR && READY_TO_DESTROY(free_op1)) {
- EXTRACT_ZVAL_PTR(EX_VAR(opline->result.var));
+ if (IS_CV == IS_VAR) {
+ FREE_VAR_PTR_AND_EXTRACT_RESULT_IF_NECESSARY(free_op1, result);
}
-
ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
}
{
USE_OPLINE
zend_free_op free_op1;
- zval *container;
+ zval *container, *result;
SAVE_OPLINE();
container = _get_zval_ptr_cv_undef_BP_VAR_W(opline->op1.var EXECUTE_DATA_CC);
+ result = EX_VAR(opline->result.var);
+ zend_fetch_dimension_address_W(result, container, NULL, IS_UNUSED EXECUTE_DATA_CC);
- zend_fetch_dimension_address_W(EX_VAR(opline->result.var), container, NULL, IS_UNUSED EXECUTE_DATA_CC);
-
- if (IS_CV == IS_VAR && READY_TO_DESTROY(free_op1)) {
- EXTRACT_ZVAL_PTR(EX_VAR(opline->result.var));
+ if (IS_CV == IS_VAR) {
+ FREE_VAR_PTR_AND_EXTRACT_RESULT_IF_NECESSARY(free_op1, result);
}
-
ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
}
{
USE_OPLINE
zend_free_op free_op1;
- zval *container;
+ zval *container, *result;
SAVE_OPLINE();
container = _get_zval_ptr_cv_undef_BP_VAR_RW(opline->op1.var EXECUTE_DATA_CC);
+ result = EX_VAR(opline->result.var);
+ zend_fetch_dimension_address_RW(result, container, NULL, IS_UNUSED EXECUTE_DATA_CC);
- zend_fetch_dimension_address_RW(EX_VAR(opline->result.var), container, NULL, IS_UNUSED EXECUTE_DATA_CC);
-
- if (IS_CV == IS_VAR && READY_TO_DESTROY(free_op1)) {
- EXTRACT_ZVAL_PTR(EX_VAR(opline->result.var));
+ if (IS_CV == IS_VAR) {
+ FREE_VAR_PTR_AND_EXTRACT_RESULT_IF_NECESSARY(free_op1, result);
}
-
ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
}
{
USE_OPLINE
zend_free_op free_op1;
- zval *container;
+ zval *container, *result;
SAVE_OPLINE();
container = _get_zval_ptr_cv_undef_BP_VAR_W(opline->op1.var EXECUTE_DATA_CC);
+ result = EX_VAR(opline->result.var);
+ zend_fetch_dimension_address_W(result, container, _get_zval_ptr_cv_undef(opline->op2.var EXECUTE_DATA_CC), IS_CV EXECUTE_DATA_CC);
- zend_fetch_dimension_address_W(EX_VAR(opline->result.var), container, _get_zval_ptr_cv_undef(opline->op2.var EXECUTE_DATA_CC), IS_CV EXECUTE_DATA_CC);
-
- if (IS_CV == IS_VAR && READY_TO_DESTROY(free_op1)) {
- EXTRACT_ZVAL_PTR(EX_VAR(opline->result.var));
+ if (IS_CV == IS_VAR) {
+ FREE_VAR_PTR_AND_EXTRACT_RESULT_IF_NECESSARY(free_op1, result);
}
-
ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
}
{
USE_OPLINE
zend_free_op free_op1;
- zval *container;
+ zval *container, *result;
SAVE_OPLINE();
container = _get_zval_ptr_cv_undef_BP_VAR_RW(opline->op1.var EXECUTE_DATA_CC);
+ result = EX_VAR(opline->result.var);
+ zend_fetch_dimension_address_RW(result, container, _get_zval_ptr_cv_undef(opline->op2.var EXECUTE_DATA_CC), IS_CV EXECUTE_DATA_CC);
- zend_fetch_dimension_address_RW(EX_VAR(opline->result.var), container, _get_zval_ptr_cv_undef(opline->op2.var EXECUTE_DATA_CC), IS_CV EXECUTE_DATA_CC);
-
- if (IS_CV == IS_VAR && READY_TO_DESTROY(free_op1)) {
- EXTRACT_ZVAL_PTR(EX_VAR(opline->result.var));
+ if (IS_CV == IS_VAR) {
+ FREE_VAR_PTR_AND_EXTRACT_RESULT_IF_NECESSARY(free_op1, result);
}
-
ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
}
{
USE_OPLINE
zend_free_op free_op1;
- zval *container;
+ zval *container, *result;
SAVE_OPLINE();
container = _get_zval_ptr_cv_undef_BP_VAR_UNSET(opline->op1.var EXECUTE_DATA_CC);
+ result = EX_VAR(opline->result.var);
+ zend_fetch_dimension_address_UNSET(result, container, _get_zval_ptr_cv_undef(opline->op2.var EXECUTE_DATA_CC), IS_CV EXECUTE_DATA_CC);
- zend_fetch_dimension_address_UNSET(EX_VAR(opline->result.var), container, _get_zval_ptr_cv_undef(opline->op2.var EXECUTE_DATA_CC), IS_CV EXECUTE_DATA_CC);
-
- if (IS_CV == IS_VAR && READY_TO_DESTROY(free_op1)) {
- EXTRACT_ZVAL_PTR(EX_VAR(opline->result.var));
+ if (IS_CV == IS_VAR) {
+ FREE_VAR_PTR_AND_EXTRACT_RESULT_IF_NECESSARY(free_op1, result);
}
-
ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
}
{
USE_OPLINE
zend_free_op free_op1;
- zval *property;
- zval *container;
+ zval *property, *container, *result;
SAVE_OPLINE();
}
property = _get_zval_ptr_cv_BP_VAR_R(opline->op2.var EXECUTE_DATA_CC);
- zend_fetch_property_address(EX_VAR(opline->result.var), container, IS_CV, property, IS_CV, ((IS_CV == IS_CONST) ? CACHE_ADDR(Z_CACHE_SLOT_P(property)) : NULL), BP_VAR_W);
+ result = EX_VAR(opline->result.var);
+ zend_fetch_property_address(result, container, IS_CV, property, IS_CV, ((IS_CV == IS_CONST) ? CACHE_ADDR(Z_CACHE_SLOT_P(property)) : NULL), BP_VAR_W);
- if (IS_CV == IS_VAR && READY_TO_DESTROY(free_op1)) {
- EXTRACT_ZVAL_PTR(EX_VAR(opline->result.var));
+ if (IS_CV == IS_VAR) {
+ FREE_VAR_PTR_AND_EXTRACT_RESULT_IF_NECESSARY(free_op1, result);
}
-
ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
}
{
USE_OPLINE
zend_free_op free_op1;
- zval *property;
- zval *container;
+ zval *property, *container, *result;
SAVE_OPLINE();
container = _get_zval_ptr_cv_BP_VAR_RW(opline->op1.var EXECUTE_DATA_CC);
ZEND_VM_TAIL_CALL(zend_this_not_in_object_context_helper_SPEC(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU));
}
property = _get_zval_ptr_cv_BP_VAR_R(opline->op2.var EXECUTE_DATA_CC);
- zend_fetch_property_address(EX_VAR(opline->result.var), container, IS_CV, property, IS_CV, ((IS_CV == IS_CONST) ? CACHE_ADDR(Z_CACHE_SLOT_P(property)) : NULL), BP_VAR_RW);
+ result = EX_VAR(opline->result.var);
+ zend_fetch_property_address(result, container, IS_CV, property, IS_CV, ((IS_CV == IS_CONST) ? CACHE_ADDR(Z_CACHE_SLOT_P(property)) : NULL), BP_VAR_RW);
- if (IS_CV == IS_VAR && READY_TO_DESTROY(free_op1)) {
- EXTRACT_ZVAL_PTR(EX_VAR(opline->result.var));
+ if (IS_CV == IS_VAR) {
+ FREE_VAR_PTR_AND_EXTRACT_RESULT_IF_NECESSARY(free_op1, result);
}
-
ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
}
{
USE_OPLINE
zend_free_op free_op1;
- zval *container, *property;
+ zval *container, *property, *result;
SAVE_OPLINE();
container = _get_zval_ptr_cv_BP_VAR_UNSET(opline->op1.var EXECUTE_DATA_CC);
}
property = _get_zval_ptr_cv_BP_VAR_R(opline->op2.var EXECUTE_DATA_CC);
+ result = EX_VAR(opline->result.var);
+ zend_fetch_property_address(result, container, IS_CV, property, IS_CV, ((IS_CV == IS_CONST) ? CACHE_ADDR(Z_CACHE_SLOT_P(property)) : NULL), BP_VAR_UNSET);
- zend_fetch_property_address(EX_VAR(opline->result.var), container, IS_CV, property, IS_CV, ((IS_CV == IS_CONST) ? CACHE_ADDR(Z_CACHE_SLOT_P(property)) : NULL), BP_VAR_UNSET);
-
- if (IS_CV == IS_VAR && READY_TO_DESTROY(free_op1)) {
- EXTRACT_ZVAL_PTR(EX_VAR(opline->result.var));
+ if (IS_CV == IS_VAR) {
+ FREE_VAR_PTR_AND_EXTRACT_RESULT_IF_NECESSARY(free_op1, result);
}
-
ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
}