if (IS_CONST != IS_CONST && varname == &tmp_varname) {
zval_dtor(&tmp_varname);
}
- if (RETURN_VALUE_USED(opline)) {
- if (opline->extended_value & ZEND_FETCH_MAKE_REF) {
- SEPARATE_ZVAL_TO_MAKE_IS_REF(retval);
- }
- PZVAL_LOCK(*retval);
- switch (type) {
- case BP_VAR_R:
- case BP_VAR_IS:
- AI_SET_PTR(&EX_T(opline->result.var), *retval);
- break;
- case BP_VAR_UNSET: {
- zend_free_op free_res;
+ if (opline->extended_value & ZEND_FETCH_MAKE_REF) {
+ SEPARATE_ZVAL_TO_MAKE_IS_REF(retval);
+ }
+ PZVAL_LOCK(*retval);
+ switch (type) {
+ case BP_VAR_R:
+ case BP_VAR_IS:
+ AI_SET_PTR(&EX_T(opline->result.var), *retval);
+ break;
+ case BP_VAR_UNSET: {
+ zend_free_op free_res;
- PZVAL_UNLOCK(*retval, &free_res);
- if (retval != &EG(uninitialized_zval_ptr)) {
- SEPARATE_ZVAL_IF_NOT_REF(retval);
- }
- PZVAL_LOCK(*retval);
- FREE_OP_VAR_PTR(free_res);
+ PZVAL_UNLOCK(*retval, &free_res);
+ if (retval != &EG(uninitialized_zval_ptr)) {
+ SEPARATE_ZVAL_IF_NOT_REF(retval);
}
- /* break missing intentionally */
- default:
- EX_T(opline->result.var).var.ptr_ptr = retval;
- break;
+ PZVAL_LOCK(*retval);
+ FREE_OP_VAR_PTR(free_res);
}
+ /* break missing intentionally */
+ default:
+ EX_T(opline->result.var).var.ptr_ptr = retval;
+ break;
}
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
container = opline->op1.zv;
if (UNEXPECTED(Z_TYPE_P(container) != IS_ARRAY)) {
- if (RETURN_VALUE_USED(opline)) {
- PZVAL_LOCK(&EG(uninitialized_zval));
- AI_SET_PTR(&EX_T(opline->result.var), &EG(uninitialized_zval));
- }
+ PZVAL_LOCK(&EG(uninitialized_zval));
+ AI_SET_PTR(&EX_T(opline->result.var), &EG(uninitialized_zval));
} else {
zval *value = *zend_fetch_dimension_address_inner(Z_ARRVAL_P(container), opline->op2.zv, IS_CONST, BP_VAR_R TSRMLS_CC);
if (IS_CONST != IS_CONST && varname == &tmp_varname) {
zval_dtor(&tmp_varname);
}
- if (RETURN_VALUE_USED(opline)) {
- if (opline->extended_value & ZEND_FETCH_MAKE_REF) {
- SEPARATE_ZVAL_TO_MAKE_IS_REF(retval);
- }
- PZVAL_LOCK(*retval);
- switch (type) {
- case BP_VAR_R:
- case BP_VAR_IS:
- AI_SET_PTR(&EX_T(opline->result.var), *retval);
- break;
- case BP_VAR_UNSET: {
- zend_free_op free_res;
+ if (opline->extended_value & ZEND_FETCH_MAKE_REF) {
+ SEPARATE_ZVAL_TO_MAKE_IS_REF(retval);
+ }
+ PZVAL_LOCK(*retval);
+ switch (type) {
+ case BP_VAR_R:
+ case BP_VAR_IS:
+ AI_SET_PTR(&EX_T(opline->result.var), *retval);
+ break;
+ case BP_VAR_UNSET: {
+ zend_free_op free_res;
- PZVAL_UNLOCK(*retval, &free_res);
- if (retval != &EG(uninitialized_zval_ptr)) {
- SEPARATE_ZVAL_IF_NOT_REF(retval);
- }
- PZVAL_LOCK(*retval);
- FREE_OP_VAR_PTR(free_res);
+ PZVAL_UNLOCK(*retval, &free_res);
+ if (retval != &EG(uninitialized_zval_ptr)) {
+ SEPARATE_ZVAL_IF_NOT_REF(retval);
}
- /* break missing intentionally */
- default:
- EX_T(opline->result.var).var.ptr_ptr = retval;
- break;
+ PZVAL_LOCK(*retval);
+ FREE_OP_VAR_PTR(free_res);
}
+ /* break missing intentionally */
+ default:
+ EX_T(opline->result.var).var.ptr_ptr = retval;
+ break;
}
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
if (IS_CONST != IS_CONST && varname == &tmp_varname) {
zval_dtor(&tmp_varname);
}
- if (RETURN_VALUE_USED(opline)) {
- if (opline->extended_value & ZEND_FETCH_MAKE_REF) {
- SEPARATE_ZVAL_TO_MAKE_IS_REF(retval);
- }
- PZVAL_LOCK(*retval);
- switch (type) {
- case BP_VAR_R:
- case BP_VAR_IS:
- AI_SET_PTR(&EX_T(opline->result.var), *retval);
- break;
- case BP_VAR_UNSET: {
- zend_free_op free_res;
+ if (opline->extended_value & ZEND_FETCH_MAKE_REF) {
+ SEPARATE_ZVAL_TO_MAKE_IS_REF(retval);
+ }
+ PZVAL_LOCK(*retval);
+ switch (type) {
+ case BP_VAR_R:
+ case BP_VAR_IS:
+ AI_SET_PTR(&EX_T(opline->result.var), *retval);
+ break;
+ case BP_VAR_UNSET: {
+ zend_free_op free_res;
- PZVAL_UNLOCK(*retval, &free_res);
- if (retval != &EG(uninitialized_zval_ptr)) {
- SEPARATE_ZVAL_IF_NOT_REF(retval);
- }
- PZVAL_LOCK(*retval);
- FREE_OP_VAR_PTR(free_res);
+ PZVAL_UNLOCK(*retval, &free_res);
+ if (retval != &EG(uninitialized_zval_ptr)) {
+ SEPARATE_ZVAL_IF_NOT_REF(retval);
}
- /* break missing intentionally */
- default:
- EX_T(opline->result.var).var.ptr_ptr = retval;
- break;
+ PZVAL_LOCK(*retval);
+ FREE_OP_VAR_PTR(free_res);
}
+ /* break missing intentionally */
+ default:
+ EX_T(opline->result.var).var.ptr_ptr = retval;
+ break;
}
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
USE_OPLINE
SAVE_OPLINE();
- zendi_zval_dtor(EX_T(opline->op1.var).tmp_var);
+ if (IS_TMP_VAR == IS_TMP_VAR) {
+ zendi_zval_dtor(EX_T(opline->op1.var).tmp_var);
+ } else {
+ zval_ptr_dtor(&EX_T(opline->op1.var).var.ptr);
+ }
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
}
if (IS_TMP_VAR != IS_CONST && varname == &tmp_varname) {
zval_dtor(&tmp_varname);
}
- if (RETURN_VALUE_USED(opline)) {
- if (opline->extended_value & ZEND_FETCH_MAKE_REF) {
- SEPARATE_ZVAL_TO_MAKE_IS_REF(retval);
- }
- PZVAL_LOCK(*retval);
- switch (type) {
- case BP_VAR_R:
- case BP_VAR_IS:
- AI_SET_PTR(&EX_T(opline->result.var), *retval);
- break;
- case BP_VAR_UNSET: {
- zend_free_op free_res;
+ if (opline->extended_value & ZEND_FETCH_MAKE_REF) {
+ SEPARATE_ZVAL_TO_MAKE_IS_REF(retval);
+ }
+ PZVAL_LOCK(*retval);
+ switch (type) {
+ case BP_VAR_R:
+ case BP_VAR_IS:
+ AI_SET_PTR(&EX_T(opline->result.var), *retval);
+ break;
+ case BP_VAR_UNSET: {
+ zend_free_op free_res;
- PZVAL_UNLOCK(*retval, &free_res);
- if (retval != &EG(uninitialized_zval_ptr)) {
- SEPARATE_ZVAL_IF_NOT_REF(retval);
- }
- PZVAL_LOCK(*retval);
- FREE_OP_VAR_PTR(free_res);
+ PZVAL_UNLOCK(*retval, &free_res);
+ if (retval != &EG(uninitialized_zval_ptr)) {
+ SEPARATE_ZVAL_IF_NOT_REF(retval);
}
- /* break missing intentionally */
- default:
- EX_T(opline->result.var).var.ptr_ptr = retval;
- break;
+ PZVAL_LOCK(*retval);
+ FREE_OP_VAR_PTR(free_res);
}
+ /* break missing intentionally */
+ default:
+ EX_T(opline->result.var).var.ptr_ptr = retval;
+ break;
}
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
container = _get_zval_ptr_tmp(opline->op1.var, EX_Ts(), &free_op1 TSRMLS_CC);
if (UNEXPECTED(Z_TYPE_P(container) != IS_ARRAY)) {
- if (RETURN_VALUE_USED(opline)) {
- PZVAL_LOCK(&EG(uninitialized_zval));
- AI_SET_PTR(&EX_T(opline->result.var), &EG(uninitialized_zval));
- }
+ PZVAL_LOCK(&EG(uninitialized_zval));
+ AI_SET_PTR(&EX_T(opline->result.var), &EG(uninitialized_zval));
} else {
zval *value = *zend_fetch_dimension_address_inner(Z_ARRVAL_P(container), opline->op2.zv, IS_CONST, BP_VAR_R TSRMLS_CC);
if (IS_TMP_VAR != IS_CONST && varname == &tmp_varname) {
zval_dtor(&tmp_varname);
}
- if (RETURN_VALUE_USED(opline)) {
- if (opline->extended_value & ZEND_FETCH_MAKE_REF) {
- SEPARATE_ZVAL_TO_MAKE_IS_REF(retval);
- }
- PZVAL_LOCK(*retval);
- switch (type) {
- case BP_VAR_R:
- case BP_VAR_IS:
- AI_SET_PTR(&EX_T(opline->result.var), *retval);
- break;
- case BP_VAR_UNSET: {
- zend_free_op free_res;
+ if (opline->extended_value & ZEND_FETCH_MAKE_REF) {
+ SEPARATE_ZVAL_TO_MAKE_IS_REF(retval);
+ }
+ PZVAL_LOCK(*retval);
+ switch (type) {
+ case BP_VAR_R:
+ case BP_VAR_IS:
+ AI_SET_PTR(&EX_T(opline->result.var), *retval);
+ break;
+ case BP_VAR_UNSET: {
+ zend_free_op free_res;
- PZVAL_UNLOCK(*retval, &free_res);
- if (retval != &EG(uninitialized_zval_ptr)) {
- SEPARATE_ZVAL_IF_NOT_REF(retval);
- }
- PZVAL_LOCK(*retval);
- FREE_OP_VAR_PTR(free_res);
+ PZVAL_UNLOCK(*retval, &free_res);
+ if (retval != &EG(uninitialized_zval_ptr)) {
+ SEPARATE_ZVAL_IF_NOT_REF(retval);
}
- /* break missing intentionally */
- default:
- EX_T(opline->result.var).var.ptr_ptr = retval;
- break;
+ PZVAL_LOCK(*retval);
+ FREE_OP_VAR_PTR(free_res);
}
+ /* break missing intentionally */
+ default:
+ EX_T(opline->result.var).var.ptr_ptr = retval;
+ break;
}
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
if (IS_TMP_VAR != IS_CONST && varname == &tmp_varname) {
zval_dtor(&tmp_varname);
}
- if (RETURN_VALUE_USED(opline)) {
- if (opline->extended_value & ZEND_FETCH_MAKE_REF) {
- SEPARATE_ZVAL_TO_MAKE_IS_REF(retval);
- }
- PZVAL_LOCK(*retval);
- switch (type) {
- case BP_VAR_R:
- case BP_VAR_IS:
- AI_SET_PTR(&EX_T(opline->result.var), *retval);
- break;
- case BP_VAR_UNSET: {
- zend_free_op free_res;
+ if (opline->extended_value & ZEND_FETCH_MAKE_REF) {
+ SEPARATE_ZVAL_TO_MAKE_IS_REF(retval);
+ }
+ PZVAL_LOCK(*retval);
+ switch (type) {
+ case BP_VAR_R:
+ case BP_VAR_IS:
+ AI_SET_PTR(&EX_T(opline->result.var), *retval);
+ break;
+ case BP_VAR_UNSET: {
+ zend_free_op free_res;
- PZVAL_UNLOCK(*retval, &free_res);
- if (retval != &EG(uninitialized_zval_ptr)) {
- SEPARATE_ZVAL_IF_NOT_REF(retval);
- }
- PZVAL_LOCK(*retval);
- FREE_OP_VAR_PTR(free_res);
+ PZVAL_UNLOCK(*retval, &free_res);
+ if (retval != &EG(uninitialized_zval_ptr)) {
+ SEPARATE_ZVAL_IF_NOT_REF(retval);
}
- /* break missing intentionally */
- default:
- EX_T(opline->result.var).var.ptr_ptr = retval;
- break;
+ PZVAL_LOCK(*retval);
+ FREE_OP_VAR_PTR(free_res);
}
+ /* break missing intentionally */
+ default:
+ EX_T(opline->result.var).var.ptr_ptr = retval;
+ break;
}
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
ZEND_VM_NEXT_OPCODE();
}
+static int ZEND_FASTCALL ZEND_FREE_SPEC_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
+{
+ USE_OPLINE
+
+ SAVE_OPLINE();
+ if (IS_VAR == IS_TMP_VAR) {
+ zendi_zval_dtor(EX_T(opline->op1.var).tmp_var);
+ } else {
+ zval_ptr_dtor(&EX_T(opline->op1.var).var.ptr);
+ }
+ CHECK_EXCEPTION();
+ ZEND_VM_NEXT_OPCODE();
+}
+
static int ZEND_FASTCALL ZEND_RETURN_SPEC_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
{
USE_OPLINE
if (IS_VAR != IS_CONST && varname == &tmp_varname) {
zval_dtor(&tmp_varname);
}
- if (RETURN_VALUE_USED(opline)) {
- if (opline->extended_value & ZEND_FETCH_MAKE_REF) {
- SEPARATE_ZVAL_TO_MAKE_IS_REF(retval);
- }
- PZVAL_LOCK(*retval);
- switch (type) {
- case BP_VAR_R:
- case BP_VAR_IS:
- AI_SET_PTR(&EX_T(opline->result.var), *retval);
- break;
- case BP_VAR_UNSET: {
- zend_free_op free_res;
+ if (opline->extended_value & ZEND_FETCH_MAKE_REF) {
+ SEPARATE_ZVAL_TO_MAKE_IS_REF(retval);
+ }
+ PZVAL_LOCK(*retval);
+ switch (type) {
+ case BP_VAR_R:
+ case BP_VAR_IS:
+ AI_SET_PTR(&EX_T(opline->result.var), *retval);
+ break;
+ case BP_VAR_UNSET: {
+ zend_free_op free_res;
- PZVAL_UNLOCK(*retval, &free_res);
- if (retval != &EG(uninitialized_zval_ptr)) {
- SEPARATE_ZVAL_IF_NOT_REF(retval);
- }
- PZVAL_LOCK(*retval);
- FREE_OP_VAR_PTR(free_res);
+ PZVAL_UNLOCK(*retval, &free_res);
+ if (retval != &EG(uninitialized_zval_ptr)) {
+ SEPARATE_ZVAL_IF_NOT_REF(retval);
}
- /* break missing intentionally */
- default:
- EX_T(opline->result.var).var.ptr_ptr = retval;
- break;
+ PZVAL_LOCK(*retval);
+ FREE_OP_VAR_PTR(free_res);
}
+ /* break missing intentionally */
+ default:
+ EX_T(opline->result.var).var.ptr_ptr = retval;
+ break;
}
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
PZVAL_LOCK(*EX_T(opline->op1.var).var.ptr_ptr);
}
container = _get_zval_ptr_ptr_var(opline->op1.var, EX_Ts(), &free_op1 TSRMLS_CC);
- zend_fetch_dimension_address_read(!RETURN_VALUE_USED(opline)?NULL:&EX_T(opline->result.var), container, opline->op2.zv, IS_CONST, BP_VAR_R TSRMLS_CC);
+ zend_fetch_dimension_address_read(&EX_T(opline->result.var), container, opline->op2.zv, IS_CONST, BP_VAR_R TSRMLS_CC);
if (free_op1.var) {zval_ptr_dtor(&free_op1.var);};
CHECK_EXCEPTION();
if (UNEXPECTED(Z_TYPE_P(container) != IS_OBJECT) ||
UNEXPECTED(Z_OBJ_HT_P(container)->read_property == NULL)) {
zend_error(E_NOTICE, "Trying to get property of non-object");
- if (RETURN_VALUE_USED(opline)) {
- PZVAL_LOCK(&EG(uninitialized_zval));
- AI_SET_PTR(&EX_T(opline->result.var), &EG(uninitialized_zval));
- }
+ PZVAL_LOCK(&EG(uninitialized_zval));
+ AI_SET_PTR(&EX_T(opline->result.var), &EG(uninitialized_zval));
} else {
zval *retval;
/* here we are sure we are dealing with an object */
retval = Z_OBJ_HT_P(container)->read_property(container, offset, BP_VAR_R, ((IS_CONST == IS_CONST) ? opline->op2.literal : NULL) TSRMLS_CC);
- if (!RETURN_VALUE_USED(opline)) {
- if (Z_REFCOUNT_P(retval) == 0) {
- GC_REMOVE_ZVAL_FROM_BUFFER(retval);
- zval_dtor(retval);
- FREE_ZVAL(retval);
- }
- } else {
- PZVAL_LOCK(retval);
- AI_SET_PTR(&EX_T(opline->result.var), retval);
- }
+ PZVAL_LOCK(retval);
+ AI_SET_PTR(&EX_T(opline->result.var), retval);
if (0) {
zval_ptr_dtor(&offset);
if (UNEXPECTED(Z_TYPE_P(container) != IS_OBJECT) ||
UNEXPECTED(Z_OBJ_HT_P(container)->read_property == NULL)) {
- if (RETURN_VALUE_USED(opline)) {
- PZVAL_LOCK(&EG(uninitialized_zval));
- AI_SET_PTR(&EX_T(opline->result.var), &EG(uninitialized_zval));
- }
+ PZVAL_LOCK(&EG(uninitialized_zval));
+ AI_SET_PTR(&EX_T(opline->result.var), &EG(uninitialized_zval));
} else {
zval *retval;
/* here we are sure we are dealing with an object */
retval = Z_OBJ_HT_P(container)->read_property(container, offset, BP_VAR_IS, ((IS_CONST == IS_CONST) ? opline->op2.literal : NULL) TSRMLS_CC);
- if (!RETURN_VALUE_USED(opline)) {
- if (Z_REFCOUNT_P(retval) == 0) {
- GC_REMOVE_ZVAL_FROM_BUFFER(retval);
- zval_dtor(retval);
- FREE_ZVAL(retval);
- }
- } else {
- PZVAL_LOCK(retval);
- AI_SET_PTR(&EX_T(opline->result.var), retval);
- }
+ PZVAL_LOCK(retval);
+ AI_SET_PTR(&EX_T(opline->result.var), retval);
if (0) {
zval_ptr_dtor(&offset);
PZVAL_LOCK(*EX_T(opline->op1.var).var.ptr_ptr);
}
container = _get_zval_ptr_ptr_var(opline->op1.var, EX_Ts(), &free_op1 TSRMLS_CC);
- zend_fetch_dimension_address_read(!RETURN_VALUE_USED(opline)?NULL:&EX_T(opline->result.var), container, _get_zval_ptr_tmp(opline->op2.var, EX_Ts(), &free_op2 TSRMLS_CC), IS_TMP_VAR, BP_VAR_R TSRMLS_CC);
+ zend_fetch_dimension_address_read(&EX_T(opline->result.var), container, _get_zval_ptr_tmp(opline->op2.var, EX_Ts(), &free_op2 TSRMLS_CC), IS_TMP_VAR, BP_VAR_R TSRMLS_CC);
zval_dtor(free_op2.var);
if (free_op1.var) {zval_ptr_dtor(&free_op1.var);};
CHECK_EXCEPTION();
if (UNEXPECTED(Z_TYPE_P(container) != IS_OBJECT) ||
UNEXPECTED(Z_OBJ_HT_P(container)->read_property == NULL)) {
zend_error(E_NOTICE, "Trying to get property of non-object");
- if (RETURN_VALUE_USED(opline)) {
- PZVAL_LOCK(&EG(uninitialized_zval));
- AI_SET_PTR(&EX_T(opline->result.var), &EG(uninitialized_zval));
- }
+ PZVAL_LOCK(&EG(uninitialized_zval));
+ AI_SET_PTR(&EX_T(opline->result.var), &EG(uninitialized_zval));
zval_dtor(free_op2.var);
} else {
zval *retval;
/* here we are sure we are dealing with an object */
retval = Z_OBJ_HT_P(container)->read_property(container, offset, BP_VAR_R, ((IS_TMP_VAR == IS_CONST) ? opline->op2.literal : NULL) TSRMLS_CC);
- if (!RETURN_VALUE_USED(opline)) {
- if (Z_REFCOUNT_P(retval) == 0) {
- GC_REMOVE_ZVAL_FROM_BUFFER(retval);
- zval_dtor(retval);
- FREE_ZVAL(retval);
- }
- } else {
- PZVAL_LOCK(retval);
- AI_SET_PTR(&EX_T(opline->result.var), retval);
- }
+ PZVAL_LOCK(retval);
+ AI_SET_PTR(&EX_T(opline->result.var), retval);
if (1) {
zval_ptr_dtor(&offset);
if (UNEXPECTED(Z_TYPE_P(container) != IS_OBJECT) ||
UNEXPECTED(Z_OBJ_HT_P(container)->read_property == NULL)) {
- if (RETURN_VALUE_USED(opline)) {
- PZVAL_LOCK(&EG(uninitialized_zval));
- AI_SET_PTR(&EX_T(opline->result.var), &EG(uninitialized_zval));
- }
+ PZVAL_LOCK(&EG(uninitialized_zval));
+ AI_SET_PTR(&EX_T(opline->result.var), &EG(uninitialized_zval));
zval_dtor(free_op2.var);
} else {
zval *retval;
/* here we are sure we are dealing with an object */
retval = Z_OBJ_HT_P(container)->read_property(container, offset, BP_VAR_IS, ((IS_TMP_VAR == IS_CONST) ? opline->op2.literal : NULL) TSRMLS_CC);
- if (!RETURN_VALUE_USED(opline)) {
- if (Z_REFCOUNT_P(retval) == 0) {
- GC_REMOVE_ZVAL_FROM_BUFFER(retval);
- zval_dtor(retval);
- FREE_ZVAL(retval);
- }
- } else {
- PZVAL_LOCK(retval);
- AI_SET_PTR(&EX_T(opline->result.var), retval);
- }
+ PZVAL_LOCK(retval);
+ AI_SET_PTR(&EX_T(opline->result.var), retval);
if (1) {
zval_ptr_dtor(&offset);
if (IS_VAR != IS_CONST && varname == &tmp_varname) {
zval_dtor(&tmp_varname);
}
- if (RETURN_VALUE_USED(opline)) {
- if (opline->extended_value & ZEND_FETCH_MAKE_REF) {
- SEPARATE_ZVAL_TO_MAKE_IS_REF(retval);
- }
- PZVAL_LOCK(*retval);
- switch (type) {
- case BP_VAR_R:
- case BP_VAR_IS:
- AI_SET_PTR(&EX_T(opline->result.var), *retval);
- break;
- case BP_VAR_UNSET: {
- zend_free_op free_res;
+ if (opline->extended_value & ZEND_FETCH_MAKE_REF) {
+ SEPARATE_ZVAL_TO_MAKE_IS_REF(retval);
+ }
+ PZVAL_LOCK(*retval);
+ switch (type) {
+ case BP_VAR_R:
+ case BP_VAR_IS:
+ AI_SET_PTR(&EX_T(opline->result.var), *retval);
+ break;
+ case BP_VAR_UNSET: {
+ zend_free_op free_res;
- PZVAL_UNLOCK(*retval, &free_res);
- if (retval != &EG(uninitialized_zval_ptr)) {
- SEPARATE_ZVAL_IF_NOT_REF(retval);
- }
- PZVAL_LOCK(*retval);
- FREE_OP_VAR_PTR(free_res);
+ PZVAL_UNLOCK(*retval, &free_res);
+ if (retval != &EG(uninitialized_zval_ptr)) {
+ SEPARATE_ZVAL_IF_NOT_REF(retval);
}
- /* break missing intentionally */
- default:
- EX_T(opline->result.var).var.ptr_ptr = retval;
- break;
+ PZVAL_LOCK(*retval);
+ FREE_OP_VAR_PTR(free_res);
}
+ /* break missing intentionally */
+ default:
+ EX_T(opline->result.var).var.ptr_ptr = retval;
+ break;
}
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
PZVAL_LOCK(*EX_T(opline->op1.var).var.ptr_ptr);
}
container = _get_zval_ptr_ptr_var(opline->op1.var, EX_Ts(), &free_op1 TSRMLS_CC);
- zend_fetch_dimension_address_read(!RETURN_VALUE_USED(opline)?NULL:&EX_T(opline->result.var), container, _get_zval_ptr_var(opline->op2.var, EX_Ts(), &free_op2 TSRMLS_CC), IS_VAR, BP_VAR_R TSRMLS_CC);
+ zend_fetch_dimension_address_read(&EX_T(opline->result.var), container, _get_zval_ptr_var(opline->op2.var, EX_Ts(), &free_op2 TSRMLS_CC), IS_VAR, BP_VAR_R TSRMLS_CC);
if (free_op2.var) {zval_ptr_dtor(&free_op2.var);};
if (free_op1.var) {zval_ptr_dtor(&free_op1.var);};
CHECK_EXCEPTION();
if (UNEXPECTED(Z_TYPE_P(container) != IS_OBJECT) ||
UNEXPECTED(Z_OBJ_HT_P(container)->read_property == NULL)) {
zend_error(E_NOTICE, "Trying to get property of non-object");
- if (RETURN_VALUE_USED(opline)) {
- PZVAL_LOCK(&EG(uninitialized_zval));
- AI_SET_PTR(&EX_T(opline->result.var), &EG(uninitialized_zval));
- }
+ PZVAL_LOCK(&EG(uninitialized_zval));
+ AI_SET_PTR(&EX_T(opline->result.var), &EG(uninitialized_zval));
if (free_op2.var) {zval_ptr_dtor(&free_op2.var);};
} else {
zval *retval;
/* here we are sure we are dealing with an object */
retval = Z_OBJ_HT_P(container)->read_property(container, offset, BP_VAR_R, ((IS_VAR == IS_CONST) ? opline->op2.literal : NULL) TSRMLS_CC);
- if (!RETURN_VALUE_USED(opline)) {
- if (Z_REFCOUNT_P(retval) == 0) {
- GC_REMOVE_ZVAL_FROM_BUFFER(retval);
- zval_dtor(retval);
- FREE_ZVAL(retval);
- }
- } else {
- PZVAL_LOCK(retval);
- AI_SET_PTR(&EX_T(opline->result.var), retval);
- }
+ PZVAL_LOCK(retval);
+ AI_SET_PTR(&EX_T(opline->result.var), retval);
if (0) {
zval_ptr_dtor(&offset);
if (UNEXPECTED(Z_TYPE_P(container) != IS_OBJECT) ||
UNEXPECTED(Z_OBJ_HT_P(container)->read_property == NULL)) {
- if (RETURN_VALUE_USED(opline)) {
- PZVAL_LOCK(&EG(uninitialized_zval));
- AI_SET_PTR(&EX_T(opline->result.var), &EG(uninitialized_zval));
- }
+ PZVAL_LOCK(&EG(uninitialized_zval));
+ AI_SET_PTR(&EX_T(opline->result.var), &EG(uninitialized_zval));
if (free_op2.var) {zval_ptr_dtor(&free_op2.var);};
} else {
zval *retval;
/* here we are sure we are dealing with an object */
retval = Z_OBJ_HT_P(container)->read_property(container, offset, BP_VAR_IS, ((IS_VAR == IS_CONST) ? opline->op2.literal : NULL) TSRMLS_CC);
- if (!RETURN_VALUE_USED(opline)) {
- if (Z_REFCOUNT_P(retval) == 0) {
- GC_REMOVE_ZVAL_FROM_BUFFER(retval);
- zval_dtor(retval);
- FREE_ZVAL(retval);
- }
- } else {
- PZVAL_LOCK(retval);
- AI_SET_PTR(&EX_T(opline->result.var), retval);
- }
+ PZVAL_LOCK(retval);
+ AI_SET_PTR(&EX_T(opline->result.var), retval);
if (0) {
zval_ptr_dtor(&offset);
if (IS_VAR != IS_CONST && varname == &tmp_varname) {
zval_dtor(&tmp_varname);
}
- if (RETURN_VALUE_USED(opline)) {
- if (opline->extended_value & ZEND_FETCH_MAKE_REF) {
- SEPARATE_ZVAL_TO_MAKE_IS_REF(retval);
- }
- PZVAL_LOCK(*retval);
- switch (type) {
- case BP_VAR_R:
- case BP_VAR_IS:
- AI_SET_PTR(&EX_T(opline->result.var), *retval);
- break;
- case BP_VAR_UNSET: {
- zend_free_op free_res;
+ if (opline->extended_value & ZEND_FETCH_MAKE_REF) {
+ SEPARATE_ZVAL_TO_MAKE_IS_REF(retval);
+ }
+ PZVAL_LOCK(*retval);
+ switch (type) {
+ case BP_VAR_R:
+ case BP_VAR_IS:
+ AI_SET_PTR(&EX_T(opline->result.var), *retval);
+ break;
+ case BP_VAR_UNSET: {
+ zend_free_op free_res;
- PZVAL_UNLOCK(*retval, &free_res);
- if (retval != &EG(uninitialized_zval_ptr)) {
- SEPARATE_ZVAL_IF_NOT_REF(retval);
- }
- PZVAL_LOCK(*retval);
- FREE_OP_VAR_PTR(free_res);
+ PZVAL_UNLOCK(*retval, &free_res);
+ if (retval != &EG(uninitialized_zval_ptr)) {
+ SEPARATE_ZVAL_IF_NOT_REF(retval);
}
- /* break missing intentionally */
- default:
- EX_T(opline->result.var).var.ptr_ptr = retval;
- break;
+ PZVAL_LOCK(*retval);
+ FREE_OP_VAR_PTR(free_res);
}
+ /* break missing intentionally */
+ default:
+ EX_T(opline->result.var).var.ptr_ptr = retval;
+ break;
}
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
PZVAL_LOCK(*EX_T(opline->op1.var).var.ptr_ptr);
}
container = _get_zval_ptr_ptr_var(opline->op1.var, EX_Ts(), &free_op1 TSRMLS_CC);
- zend_fetch_dimension_address_read(!RETURN_VALUE_USED(opline)?NULL:&EX_T(opline->result.var), container, _get_zval_ptr_cv_BP_VAR_R(EX_CVs(), opline->op2.var TSRMLS_CC), IS_CV, BP_VAR_R TSRMLS_CC);
+ zend_fetch_dimension_address_read(&EX_T(opline->result.var), container, _get_zval_ptr_cv_BP_VAR_R(EX_CVs(), opline->op2.var TSRMLS_CC), IS_CV, BP_VAR_R TSRMLS_CC);
if (free_op1.var) {zval_ptr_dtor(&free_op1.var);};
CHECK_EXCEPTION();
if (UNEXPECTED(Z_TYPE_P(container) != IS_OBJECT) ||
UNEXPECTED(Z_OBJ_HT_P(container)->read_property == NULL)) {
zend_error(E_NOTICE, "Trying to get property of non-object");
- if (RETURN_VALUE_USED(opline)) {
- PZVAL_LOCK(&EG(uninitialized_zval));
- AI_SET_PTR(&EX_T(opline->result.var), &EG(uninitialized_zval));
- }
+ PZVAL_LOCK(&EG(uninitialized_zval));
+ AI_SET_PTR(&EX_T(opline->result.var), &EG(uninitialized_zval));
} else {
zval *retval;
/* here we are sure we are dealing with an object */
retval = Z_OBJ_HT_P(container)->read_property(container, offset, BP_VAR_R, ((IS_CV == IS_CONST) ? opline->op2.literal : NULL) TSRMLS_CC);
- if (!RETURN_VALUE_USED(opline)) {
- if (Z_REFCOUNT_P(retval) == 0) {
- GC_REMOVE_ZVAL_FROM_BUFFER(retval);
- zval_dtor(retval);
- FREE_ZVAL(retval);
- }
- } else {
- PZVAL_LOCK(retval);
- AI_SET_PTR(&EX_T(opline->result.var), retval);
- }
+ PZVAL_LOCK(retval);
+ AI_SET_PTR(&EX_T(opline->result.var), retval);
if (0) {
zval_ptr_dtor(&offset);
if (UNEXPECTED(Z_TYPE_P(container) != IS_OBJECT) ||
UNEXPECTED(Z_OBJ_HT_P(container)->read_property == NULL)) {
- if (RETURN_VALUE_USED(opline)) {
- PZVAL_LOCK(&EG(uninitialized_zval));
- AI_SET_PTR(&EX_T(opline->result.var), &EG(uninitialized_zval));
- }
+ PZVAL_LOCK(&EG(uninitialized_zval));
+ AI_SET_PTR(&EX_T(opline->result.var), &EG(uninitialized_zval));
} else {
zval *retval;
/* here we are sure we are dealing with an object */
retval = Z_OBJ_HT_P(container)->read_property(container, offset, BP_VAR_IS, ((IS_CV == IS_CONST) ? opline->op2.literal : NULL) TSRMLS_CC);
- if (!RETURN_VALUE_USED(opline)) {
- if (Z_REFCOUNT_P(retval) == 0) {
- GC_REMOVE_ZVAL_FROM_BUFFER(retval);
- zval_dtor(retval);
- FREE_ZVAL(retval);
- }
- } else {
- PZVAL_LOCK(retval);
- AI_SET_PTR(&EX_T(opline->result.var), retval);
- }
+ PZVAL_LOCK(retval);
+ AI_SET_PTR(&EX_T(opline->result.var), retval);
if (0) {
zval_ptr_dtor(&offset);
if (UNEXPECTED(Z_TYPE_P(container) != IS_OBJECT) ||
UNEXPECTED(Z_OBJ_HT_P(container)->read_property == NULL)) {
zend_error(E_NOTICE, "Trying to get property of non-object");
- if (RETURN_VALUE_USED(opline)) {
- PZVAL_LOCK(&EG(uninitialized_zval));
- AI_SET_PTR(&EX_T(opline->result.var), &EG(uninitialized_zval));
- }
+ PZVAL_LOCK(&EG(uninitialized_zval));
+ AI_SET_PTR(&EX_T(opline->result.var), &EG(uninitialized_zval));
} else {
zval *retval;
/* here we are sure we are dealing with an object */
retval = Z_OBJ_HT_P(container)->read_property(container, offset, BP_VAR_R, ((IS_CONST == IS_CONST) ? opline->op2.literal : NULL) TSRMLS_CC);
- if (!RETURN_VALUE_USED(opline)) {
- if (Z_REFCOUNT_P(retval) == 0) {
- GC_REMOVE_ZVAL_FROM_BUFFER(retval);
- zval_dtor(retval);
- FREE_ZVAL(retval);
- }
- } else {
- PZVAL_LOCK(retval);
- AI_SET_PTR(&EX_T(opline->result.var), retval);
- }
+ PZVAL_LOCK(retval);
+ AI_SET_PTR(&EX_T(opline->result.var), retval);
if (0) {
zval_ptr_dtor(&offset);
if (UNEXPECTED(Z_TYPE_P(container) != IS_OBJECT) ||
UNEXPECTED(Z_OBJ_HT_P(container)->read_property == NULL)) {
- if (RETURN_VALUE_USED(opline)) {
- PZVAL_LOCK(&EG(uninitialized_zval));
- AI_SET_PTR(&EX_T(opline->result.var), &EG(uninitialized_zval));
- }
+ PZVAL_LOCK(&EG(uninitialized_zval));
+ AI_SET_PTR(&EX_T(opline->result.var), &EG(uninitialized_zval));
} else {
zval *retval;
/* here we are sure we are dealing with an object */
retval = Z_OBJ_HT_P(container)->read_property(container, offset, BP_VAR_IS, ((IS_CONST == IS_CONST) ? opline->op2.literal : NULL) TSRMLS_CC);
- if (!RETURN_VALUE_USED(opline)) {
- if (Z_REFCOUNT_P(retval) == 0) {
- GC_REMOVE_ZVAL_FROM_BUFFER(retval);
- zval_dtor(retval);
- FREE_ZVAL(retval);
- }
- } else {
- PZVAL_LOCK(retval);
- AI_SET_PTR(&EX_T(opline->result.var), retval);
- }
+ PZVAL_LOCK(retval);
+ AI_SET_PTR(&EX_T(opline->result.var), retval);
if (0) {
zval_ptr_dtor(&offset);
if (UNEXPECTED(Z_TYPE_P(container) != IS_OBJECT) ||
UNEXPECTED(Z_OBJ_HT_P(container)->read_property == NULL)) {
zend_error(E_NOTICE, "Trying to get property of non-object");
- if (RETURN_VALUE_USED(opline)) {
- PZVAL_LOCK(&EG(uninitialized_zval));
- AI_SET_PTR(&EX_T(opline->result.var), &EG(uninitialized_zval));
- }
+ PZVAL_LOCK(&EG(uninitialized_zval));
+ AI_SET_PTR(&EX_T(opline->result.var), &EG(uninitialized_zval));
zval_dtor(free_op2.var);
} else {
zval *retval;
/* here we are sure we are dealing with an object */
retval = Z_OBJ_HT_P(container)->read_property(container, offset, BP_VAR_R, ((IS_TMP_VAR == IS_CONST) ? opline->op2.literal : NULL) TSRMLS_CC);
- if (!RETURN_VALUE_USED(opline)) {
- if (Z_REFCOUNT_P(retval) == 0) {
- GC_REMOVE_ZVAL_FROM_BUFFER(retval);
- zval_dtor(retval);
- FREE_ZVAL(retval);
- }
- } else {
- PZVAL_LOCK(retval);
- AI_SET_PTR(&EX_T(opline->result.var), retval);
- }
+ PZVAL_LOCK(retval);
+ AI_SET_PTR(&EX_T(opline->result.var), retval);
if (1) {
zval_ptr_dtor(&offset);
if (UNEXPECTED(Z_TYPE_P(container) != IS_OBJECT) ||
UNEXPECTED(Z_OBJ_HT_P(container)->read_property == NULL)) {
- if (RETURN_VALUE_USED(opline)) {
- PZVAL_LOCK(&EG(uninitialized_zval));
- AI_SET_PTR(&EX_T(opline->result.var), &EG(uninitialized_zval));
- }
+ PZVAL_LOCK(&EG(uninitialized_zval));
+ AI_SET_PTR(&EX_T(opline->result.var), &EG(uninitialized_zval));
zval_dtor(free_op2.var);
} else {
zval *retval;
/* here we are sure we are dealing with an object */
retval = Z_OBJ_HT_P(container)->read_property(container, offset, BP_VAR_IS, ((IS_TMP_VAR == IS_CONST) ? opline->op2.literal : NULL) TSRMLS_CC);
- if (!RETURN_VALUE_USED(opline)) {
- if (Z_REFCOUNT_P(retval) == 0) {
- GC_REMOVE_ZVAL_FROM_BUFFER(retval);
- zval_dtor(retval);
- FREE_ZVAL(retval);
- }
- } else {
- PZVAL_LOCK(retval);
- AI_SET_PTR(&EX_T(opline->result.var), retval);
- }
+ PZVAL_LOCK(retval);
+ AI_SET_PTR(&EX_T(opline->result.var), retval);
if (1) {
zval_ptr_dtor(&offset);
if (UNEXPECTED(Z_TYPE_P(container) != IS_OBJECT) ||
UNEXPECTED(Z_OBJ_HT_P(container)->read_property == NULL)) {
zend_error(E_NOTICE, "Trying to get property of non-object");
- if (RETURN_VALUE_USED(opline)) {
- PZVAL_LOCK(&EG(uninitialized_zval));
- AI_SET_PTR(&EX_T(opline->result.var), &EG(uninitialized_zval));
- }
+ PZVAL_LOCK(&EG(uninitialized_zval));
+ AI_SET_PTR(&EX_T(opline->result.var), &EG(uninitialized_zval));
if (free_op2.var) {zval_ptr_dtor(&free_op2.var);};
} else {
zval *retval;
/* here we are sure we are dealing with an object */
retval = Z_OBJ_HT_P(container)->read_property(container, offset, BP_VAR_R, ((IS_VAR == IS_CONST) ? opline->op2.literal : NULL) TSRMLS_CC);
- if (!RETURN_VALUE_USED(opline)) {
- if (Z_REFCOUNT_P(retval) == 0) {
- GC_REMOVE_ZVAL_FROM_BUFFER(retval);
- zval_dtor(retval);
- FREE_ZVAL(retval);
- }
- } else {
- PZVAL_LOCK(retval);
- AI_SET_PTR(&EX_T(opline->result.var), retval);
- }
+ PZVAL_LOCK(retval);
+ AI_SET_PTR(&EX_T(opline->result.var), retval);
if (0) {
zval_ptr_dtor(&offset);
if (UNEXPECTED(Z_TYPE_P(container) != IS_OBJECT) ||
UNEXPECTED(Z_OBJ_HT_P(container)->read_property == NULL)) {
- if (RETURN_VALUE_USED(opline)) {
- PZVAL_LOCK(&EG(uninitialized_zval));
- AI_SET_PTR(&EX_T(opline->result.var), &EG(uninitialized_zval));
- }
+ PZVAL_LOCK(&EG(uninitialized_zval));
+ AI_SET_PTR(&EX_T(opline->result.var), &EG(uninitialized_zval));
if (free_op2.var) {zval_ptr_dtor(&free_op2.var);};
} else {
zval *retval;
/* here we are sure we are dealing with an object */
retval = Z_OBJ_HT_P(container)->read_property(container, offset, BP_VAR_IS, ((IS_VAR == IS_CONST) ? opline->op2.literal : NULL) TSRMLS_CC);
- if (!RETURN_VALUE_USED(opline)) {
- if (Z_REFCOUNT_P(retval) == 0) {
- GC_REMOVE_ZVAL_FROM_BUFFER(retval);
- zval_dtor(retval);
- FREE_ZVAL(retval);
- }
- } else {
- PZVAL_LOCK(retval);
- AI_SET_PTR(&EX_T(opline->result.var), retval);
- }
+ PZVAL_LOCK(retval);
+ AI_SET_PTR(&EX_T(opline->result.var), retval);
if (0) {
zval_ptr_dtor(&offset);
if (UNEXPECTED(Z_TYPE_P(container) != IS_OBJECT) ||
UNEXPECTED(Z_OBJ_HT_P(container)->read_property == NULL)) {
zend_error(E_NOTICE, "Trying to get property of non-object");
- if (RETURN_VALUE_USED(opline)) {
- PZVAL_LOCK(&EG(uninitialized_zval));
- AI_SET_PTR(&EX_T(opline->result.var), &EG(uninitialized_zval));
- }
+ PZVAL_LOCK(&EG(uninitialized_zval));
+ AI_SET_PTR(&EX_T(opline->result.var), &EG(uninitialized_zval));
} else {
zval *retval;
/* here we are sure we are dealing with an object */
retval = Z_OBJ_HT_P(container)->read_property(container, offset, BP_VAR_R, ((IS_CV == IS_CONST) ? opline->op2.literal : NULL) TSRMLS_CC);
- if (!RETURN_VALUE_USED(opline)) {
- if (Z_REFCOUNT_P(retval) == 0) {
- GC_REMOVE_ZVAL_FROM_BUFFER(retval);
- zval_dtor(retval);
- FREE_ZVAL(retval);
- }
- } else {
- PZVAL_LOCK(retval);
- AI_SET_PTR(&EX_T(opline->result.var), retval);
- }
+ PZVAL_LOCK(retval);
+ AI_SET_PTR(&EX_T(opline->result.var), retval);
if (0) {
zval_ptr_dtor(&offset);
if (UNEXPECTED(Z_TYPE_P(container) != IS_OBJECT) ||
UNEXPECTED(Z_OBJ_HT_P(container)->read_property == NULL)) {
- if (RETURN_VALUE_USED(opline)) {
- PZVAL_LOCK(&EG(uninitialized_zval));
- AI_SET_PTR(&EX_T(opline->result.var), &EG(uninitialized_zval));
- }
+ PZVAL_LOCK(&EG(uninitialized_zval));
+ AI_SET_PTR(&EX_T(opline->result.var), &EG(uninitialized_zval));
} else {
zval *retval;
/* here we are sure we are dealing with an object */
retval = Z_OBJ_HT_P(container)->read_property(container, offset, BP_VAR_IS, ((IS_CV == IS_CONST) ? opline->op2.literal : NULL) TSRMLS_CC);
- if (!RETURN_VALUE_USED(opline)) {
- if (Z_REFCOUNT_P(retval) == 0) {
- GC_REMOVE_ZVAL_FROM_BUFFER(retval);
- zval_dtor(retval);
- FREE_ZVAL(retval);
- }
- } else {
- PZVAL_LOCK(retval);
- AI_SET_PTR(&EX_T(opline->result.var), retval);
- }
+ PZVAL_LOCK(retval);
+ AI_SET_PTR(&EX_T(opline->result.var), retval);
if (0) {
zval_ptr_dtor(&offset);
if (IS_CV != IS_CONST && varname == &tmp_varname) {
zval_dtor(&tmp_varname);
}
- if (RETURN_VALUE_USED(opline)) {
- if (opline->extended_value & ZEND_FETCH_MAKE_REF) {
- SEPARATE_ZVAL_TO_MAKE_IS_REF(retval);
- }
- PZVAL_LOCK(*retval);
- switch (type) {
- case BP_VAR_R:
- case BP_VAR_IS:
- AI_SET_PTR(&EX_T(opline->result.var), *retval);
- break;
- case BP_VAR_UNSET: {
- zend_free_op free_res;
+ if (opline->extended_value & ZEND_FETCH_MAKE_REF) {
+ SEPARATE_ZVAL_TO_MAKE_IS_REF(retval);
+ }
+ PZVAL_LOCK(*retval);
+ switch (type) {
+ case BP_VAR_R:
+ case BP_VAR_IS:
+ AI_SET_PTR(&EX_T(opline->result.var), *retval);
+ break;
+ case BP_VAR_UNSET: {
+ zend_free_op free_res;
- PZVAL_UNLOCK(*retval, &free_res);
- if (retval != &EG(uninitialized_zval_ptr)) {
- SEPARATE_ZVAL_IF_NOT_REF(retval);
- }
- PZVAL_LOCK(*retval);
- FREE_OP_VAR_PTR(free_res);
+ PZVAL_UNLOCK(*retval, &free_res);
+ if (retval != &EG(uninitialized_zval_ptr)) {
+ SEPARATE_ZVAL_IF_NOT_REF(retval);
}
- /* break missing intentionally */
- default:
- EX_T(opline->result.var).var.ptr_ptr = retval;
- break;
+ PZVAL_LOCK(*retval);
+ FREE_OP_VAR_PTR(free_res);
}
+ /* break missing intentionally */
+ default:
+ EX_T(opline->result.var).var.ptr_ptr = retval;
+ break;
}
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
PZVAL_LOCK(*EX_T(opline->op1.var).var.ptr_ptr);
}
container = _get_zval_ptr_ptr_cv_BP_VAR_R(EX_CVs(), opline->op1.var TSRMLS_CC);
- zend_fetch_dimension_address_read(!RETURN_VALUE_USED(opline)?NULL:&EX_T(opline->result.var), container, opline->op2.zv, IS_CONST, BP_VAR_R TSRMLS_CC);
+ zend_fetch_dimension_address_read(&EX_T(opline->result.var), container, opline->op2.zv, IS_CONST, BP_VAR_R TSRMLS_CC);
CHECK_EXCEPTION();
if (UNEXPECTED(Z_TYPE_P(container) != IS_OBJECT) ||
UNEXPECTED(Z_OBJ_HT_P(container)->read_property == NULL)) {
zend_error(E_NOTICE, "Trying to get property of non-object");
- if (RETURN_VALUE_USED(opline)) {
- PZVAL_LOCK(&EG(uninitialized_zval));
- AI_SET_PTR(&EX_T(opline->result.var), &EG(uninitialized_zval));
- }
+ PZVAL_LOCK(&EG(uninitialized_zval));
+ AI_SET_PTR(&EX_T(opline->result.var), &EG(uninitialized_zval));
} else {
zval *retval;
/* here we are sure we are dealing with an object */
retval = Z_OBJ_HT_P(container)->read_property(container, offset, BP_VAR_R, ((IS_CONST == IS_CONST) ? opline->op2.literal : NULL) TSRMLS_CC);
- if (!RETURN_VALUE_USED(opline)) {
- if (Z_REFCOUNT_P(retval) == 0) {
- GC_REMOVE_ZVAL_FROM_BUFFER(retval);
- zval_dtor(retval);
- FREE_ZVAL(retval);
- }
- } else {
- PZVAL_LOCK(retval);
- AI_SET_PTR(&EX_T(opline->result.var), retval);
- }
+ PZVAL_LOCK(retval);
+ AI_SET_PTR(&EX_T(opline->result.var), retval);
if (0) {
zval_ptr_dtor(&offset);
if (UNEXPECTED(Z_TYPE_P(container) != IS_OBJECT) ||
UNEXPECTED(Z_OBJ_HT_P(container)->read_property == NULL)) {
- if (RETURN_VALUE_USED(opline)) {
- PZVAL_LOCK(&EG(uninitialized_zval));
- AI_SET_PTR(&EX_T(opline->result.var), &EG(uninitialized_zval));
- }
+ PZVAL_LOCK(&EG(uninitialized_zval));
+ AI_SET_PTR(&EX_T(opline->result.var), &EG(uninitialized_zval));
} else {
zval *retval;
/* here we are sure we are dealing with an object */
retval = Z_OBJ_HT_P(container)->read_property(container, offset, BP_VAR_IS, ((IS_CONST == IS_CONST) ? opline->op2.literal : NULL) TSRMLS_CC);
- if (!RETURN_VALUE_USED(opline)) {
- if (Z_REFCOUNT_P(retval) == 0) {
- GC_REMOVE_ZVAL_FROM_BUFFER(retval);
- zval_dtor(retval);
- FREE_ZVAL(retval);
- }
- } else {
- PZVAL_LOCK(retval);
- AI_SET_PTR(&EX_T(opline->result.var), retval);
- }
+ PZVAL_LOCK(retval);
+ AI_SET_PTR(&EX_T(opline->result.var), retval);
if (0) {
zval_ptr_dtor(&offset);
PZVAL_LOCK(*EX_T(opline->op1.var).var.ptr_ptr);
}
container = _get_zval_ptr_ptr_cv_BP_VAR_R(EX_CVs(), opline->op1.var TSRMLS_CC);
- zend_fetch_dimension_address_read(!RETURN_VALUE_USED(opline)?NULL:&EX_T(opline->result.var), container, _get_zval_ptr_tmp(opline->op2.var, EX_Ts(), &free_op2 TSRMLS_CC), IS_TMP_VAR, BP_VAR_R TSRMLS_CC);
+ zend_fetch_dimension_address_read(&EX_T(opline->result.var), container, _get_zval_ptr_tmp(opline->op2.var, EX_Ts(), &free_op2 TSRMLS_CC), IS_TMP_VAR, BP_VAR_R TSRMLS_CC);
zval_dtor(free_op2.var);
CHECK_EXCEPTION();
if (UNEXPECTED(Z_TYPE_P(container) != IS_OBJECT) ||
UNEXPECTED(Z_OBJ_HT_P(container)->read_property == NULL)) {
zend_error(E_NOTICE, "Trying to get property of non-object");
- if (RETURN_VALUE_USED(opline)) {
- PZVAL_LOCK(&EG(uninitialized_zval));
- AI_SET_PTR(&EX_T(opline->result.var), &EG(uninitialized_zval));
- }
+ PZVAL_LOCK(&EG(uninitialized_zval));
+ AI_SET_PTR(&EX_T(opline->result.var), &EG(uninitialized_zval));
zval_dtor(free_op2.var);
} else {
zval *retval;
/* here we are sure we are dealing with an object */
retval = Z_OBJ_HT_P(container)->read_property(container, offset, BP_VAR_R, ((IS_TMP_VAR == IS_CONST) ? opline->op2.literal : NULL) TSRMLS_CC);
- if (!RETURN_VALUE_USED(opline)) {
- if (Z_REFCOUNT_P(retval) == 0) {
- GC_REMOVE_ZVAL_FROM_BUFFER(retval);
- zval_dtor(retval);
- FREE_ZVAL(retval);
- }
- } else {
- PZVAL_LOCK(retval);
- AI_SET_PTR(&EX_T(opline->result.var), retval);
- }
+ PZVAL_LOCK(retval);
+ AI_SET_PTR(&EX_T(opline->result.var), retval);
if (1) {
zval_ptr_dtor(&offset);
if (UNEXPECTED(Z_TYPE_P(container) != IS_OBJECT) ||
UNEXPECTED(Z_OBJ_HT_P(container)->read_property == NULL)) {
- if (RETURN_VALUE_USED(opline)) {
- PZVAL_LOCK(&EG(uninitialized_zval));
- AI_SET_PTR(&EX_T(opline->result.var), &EG(uninitialized_zval));
- }
+ PZVAL_LOCK(&EG(uninitialized_zval));
+ AI_SET_PTR(&EX_T(opline->result.var), &EG(uninitialized_zval));
zval_dtor(free_op2.var);
} else {
zval *retval;
/* here we are sure we are dealing with an object */
retval = Z_OBJ_HT_P(container)->read_property(container, offset, BP_VAR_IS, ((IS_TMP_VAR == IS_CONST) ? opline->op2.literal : NULL) TSRMLS_CC);
- if (!RETURN_VALUE_USED(opline)) {
- if (Z_REFCOUNT_P(retval) == 0) {
- GC_REMOVE_ZVAL_FROM_BUFFER(retval);
- zval_dtor(retval);
- FREE_ZVAL(retval);
- }
- } else {
- PZVAL_LOCK(retval);
- AI_SET_PTR(&EX_T(opline->result.var), retval);
- }
+ PZVAL_LOCK(retval);
+ AI_SET_PTR(&EX_T(opline->result.var), retval);
if (1) {
zval_ptr_dtor(&offset);
if (IS_CV != IS_CONST && varname == &tmp_varname) {
zval_dtor(&tmp_varname);
}
- if (RETURN_VALUE_USED(opline)) {
- if (opline->extended_value & ZEND_FETCH_MAKE_REF) {
- SEPARATE_ZVAL_TO_MAKE_IS_REF(retval);
- }
- PZVAL_LOCK(*retval);
- switch (type) {
- case BP_VAR_R:
- case BP_VAR_IS:
- AI_SET_PTR(&EX_T(opline->result.var), *retval);
- break;
- case BP_VAR_UNSET: {
- zend_free_op free_res;
+ if (opline->extended_value & ZEND_FETCH_MAKE_REF) {
+ SEPARATE_ZVAL_TO_MAKE_IS_REF(retval);
+ }
+ PZVAL_LOCK(*retval);
+ switch (type) {
+ case BP_VAR_R:
+ case BP_VAR_IS:
+ AI_SET_PTR(&EX_T(opline->result.var), *retval);
+ break;
+ case BP_VAR_UNSET: {
+ zend_free_op free_res;
- PZVAL_UNLOCK(*retval, &free_res);
- if (retval != &EG(uninitialized_zval_ptr)) {
- SEPARATE_ZVAL_IF_NOT_REF(retval);
- }
- PZVAL_LOCK(*retval);
- FREE_OP_VAR_PTR(free_res);
+ PZVAL_UNLOCK(*retval, &free_res);
+ if (retval != &EG(uninitialized_zval_ptr)) {
+ SEPARATE_ZVAL_IF_NOT_REF(retval);
}
- /* break missing intentionally */
- default:
- EX_T(opline->result.var).var.ptr_ptr = retval;
- break;
+ PZVAL_LOCK(*retval);
+ FREE_OP_VAR_PTR(free_res);
}
+ /* break missing intentionally */
+ default:
+ EX_T(opline->result.var).var.ptr_ptr = retval;
+ break;
}
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
PZVAL_LOCK(*EX_T(opline->op1.var).var.ptr_ptr);
}
container = _get_zval_ptr_ptr_cv_BP_VAR_R(EX_CVs(), opline->op1.var TSRMLS_CC);
- zend_fetch_dimension_address_read(!RETURN_VALUE_USED(opline)?NULL:&EX_T(opline->result.var), container, _get_zval_ptr_var(opline->op2.var, EX_Ts(), &free_op2 TSRMLS_CC), IS_VAR, BP_VAR_R TSRMLS_CC);
+ zend_fetch_dimension_address_read(&EX_T(opline->result.var), container, _get_zval_ptr_var(opline->op2.var, EX_Ts(), &free_op2 TSRMLS_CC), IS_VAR, BP_VAR_R TSRMLS_CC);
if (free_op2.var) {zval_ptr_dtor(&free_op2.var);};
CHECK_EXCEPTION();
if (UNEXPECTED(Z_TYPE_P(container) != IS_OBJECT) ||
UNEXPECTED(Z_OBJ_HT_P(container)->read_property == NULL)) {
zend_error(E_NOTICE, "Trying to get property of non-object");
- if (RETURN_VALUE_USED(opline)) {
- PZVAL_LOCK(&EG(uninitialized_zval));
- AI_SET_PTR(&EX_T(opline->result.var), &EG(uninitialized_zval));
- }
+ PZVAL_LOCK(&EG(uninitialized_zval));
+ AI_SET_PTR(&EX_T(opline->result.var), &EG(uninitialized_zval));
if (free_op2.var) {zval_ptr_dtor(&free_op2.var);};
} else {
zval *retval;
/* here we are sure we are dealing with an object */
retval = Z_OBJ_HT_P(container)->read_property(container, offset, BP_VAR_R, ((IS_VAR == IS_CONST) ? opline->op2.literal : NULL) TSRMLS_CC);
- if (!RETURN_VALUE_USED(opline)) {
- if (Z_REFCOUNT_P(retval) == 0) {
- GC_REMOVE_ZVAL_FROM_BUFFER(retval);
- zval_dtor(retval);
- FREE_ZVAL(retval);
- }
- } else {
- PZVAL_LOCK(retval);
- AI_SET_PTR(&EX_T(opline->result.var), retval);
- }
+ PZVAL_LOCK(retval);
+ AI_SET_PTR(&EX_T(opline->result.var), retval);
if (0) {
zval_ptr_dtor(&offset);
if (UNEXPECTED(Z_TYPE_P(container) != IS_OBJECT) ||
UNEXPECTED(Z_OBJ_HT_P(container)->read_property == NULL)) {
- if (RETURN_VALUE_USED(opline)) {
- PZVAL_LOCK(&EG(uninitialized_zval));
- AI_SET_PTR(&EX_T(opline->result.var), &EG(uninitialized_zval));
- }
+ PZVAL_LOCK(&EG(uninitialized_zval));
+ AI_SET_PTR(&EX_T(opline->result.var), &EG(uninitialized_zval));
if (free_op2.var) {zval_ptr_dtor(&free_op2.var);};
} else {
zval *retval;
/* here we are sure we are dealing with an object */
retval = Z_OBJ_HT_P(container)->read_property(container, offset, BP_VAR_IS, ((IS_VAR == IS_CONST) ? opline->op2.literal : NULL) TSRMLS_CC);
- if (!RETURN_VALUE_USED(opline)) {
- if (Z_REFCOUNT_P(retval) == 0) {
- GC_REMOVE_ZVAL_FROM_BUFFER(retval);
- zval_dtor(retval);
- FREE_ZVAL(retval);
- }
- } else {
- PZVAL_LOCK(retval);
- AI_SET_PTR(&EX_T(opline->result.var), retval);
- }
+ PZVAL_LOCK(retval);
+ AI_SET_PTR(&EX_T(opline->result.var), retval);
if (0) {
zval_ptr_dtor(&offset);
if (IS_CV != IS_CONST && varname == &tmp_varname) {
zval_dtor(&tmp_varname);
}
- if (RETURN_VALUE_USED(opline)) {
- if (opline->extended_value & ZEND_FETCH_MAKE_REF) {
- SEPARATE_ZVAL_TO_MAKE_IS_REF(retval);
- }
- PZVAL_LOCK(*retval);
- switch (type) {
- case BP_VAR_R:
- case BP_VAR_IS:
- AI_SET_PTR(&EX_T(opline->result.var), *retval);
- break;
- case BP_VAR_UNSET: {
- zend_free_op free_res;
+ if (opline->extended_value & ZEND_FETCH_MAKE_REF) {
+ SEPARATE_ZVAL_TO_MAKE_IS_REF(retval);
+ }
+ PZVAL_LOCK(*retval);
+ switch (type) {
+ case BP_VAR_R:
+ case BP_VAR_IS:
+ AI_SET_PTR(&EX_T(opline->result.var), *retval);
+ break;
+ case BP_VAR_UNSET: {
+ zend_free_op free_res;
- PZVAL_UNLOCK(*retval, &free_res);
- if (retval != &EG(uninitialized_zval_ptr)) {
- SEPARATE_ZVAL_IF_NOT_REF(retval);
- }
- PZVAL_LOCK(*retval);
- FREE_OP_VAR_PTR(free_res);
+ PZVAL_UNLOCK(*retval, &free_res);
+ if (retval != &EG(uninitialized_zval_ptr)) {
+ SEPARATE_ZVAL_IF_NOT_REF(retval);
}
- /* break missing intentionally */
- default:
- EX_T(opline->result.var).var.ptr_ptr = retval;
- break;
+ PZVAL_LOCK(*retval);
+ FREE_OP_VAR_PTR(free_res);
}
+ /* break missing intentionally */
+ default:
+ EX_T(opline->result.var).var.ptr_ptr = retval;
+ break;
}
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
PZVAL_LOCK(*EX_T(opline->op1.var).var.ptr_ptr);
}
container = _get_zval_ptr_ptr_cv_BP_VAR_R(EX_CVs(), opline->op1.var TSRMLS_CC);
- zend_fetch_dimension_address_read(!RETURN_VALUE_USED(opline)?NULL:&EX_T(opline->result.var), container, _get_zval_ptr_cv_BP_VAR_R(EX_CVs(), opline->op2.var TSRMLS_CC), IS_CV, BP_VAR_R TSRMLS_CC);
+ zend_fetch_dimension_address_read(&EX_T(opline->result.var), container, _get_zval_ptr_cv_BP_VAR_R(EX_CVs(), opline->op2.var TSRMLS_CC), IS_CV, BP_VAR_R TSRMLS_CC);
CHECK_EXCEPTION();
if (UNEXPECTED(Z_TYPE_P(container) != IS_OBJECT) ||
UNEXPECTED(Z_OBJ_HT_P(container)->read_property == NULL)) {
zend_error(E_NOTICE, "Trying to get property of non-object");
- if (RETURN_VALUE_USED(opline)) {
- PZVAL_LOCK(&EG(uninitialized_zval));
- AI_SET_PTR(&EX_T(opline->result.var), &EG(uninitialized_zval));
- }
+ PZVAL_LOCK(&EG(uninitialized_zval));
+ AI_SET_PTR(&EX_T(opline->result.var), &EG(uninitialized_zval));
} else {
zval *retval;
/* here we are sure we are dealing with an object */
retval = Z_OBJ_HT_P(container)->read_property(container, offset, BP_VAR_R, ((IS_CV == IS_CONST) ? opline->op2.literal : NULL) TSRMLS_CC);
- if (!RETURN_VALUE_USED(opline)) {
- if (Z_REFCOUNT_P(retval) == 0) {
- GC_REMOVE_ZVAL_FROM_BUFFER(retval);
- zval_dtor(retval);
- FREE_ZVAL(retval);
- }
- } else {
- PZVAL_LOCK(retval);
- AI_SET_PTR(&EX_T(opline->result.var), retval);
- }
+ PZVAL_LOCK(retval);
+ AI_SET_PTR(&EX_T(opline->result.var), retval);
if (0) {
zval_ptr_dtor(&offset);
if (UNEXPECTED(Z_TYPE_P(container) != IS_OBJECT) ||
UNEXPECTED(Z_OBJ_HT_P(container)->read_property == NULL)) {
- if (RETURN_VALUE_USED(opline)) {
- PZVAL_LOCK(&EG(uninitialized_zval));
- AI_SET_PTR(&EX_T(opline->result.var), &EG(uninitialized_zval));
- }
+ PZVAL_LOCK(&EG(uninitialized_zval));
+ AI_SET_PTR(&EX_T(opline->result.var), &EG(uninitialized_zval));
} else {
zval *retval;
/* here we are sure we are dealing with an object */
retval = Z_OBJ_HT_P(container)->read_property(container, offset, BP_VAR_IS, ((IS_CV == IS_CONST) ? opline->op2.literal : NULL) TSRMLS_CC);
- if (!RETURN_VALUE_USED(opline)) {
- if (Z_REFCOUNT_P(retval) == 0) {
- GC_REMOVE_ZVAL_FROM_BUFFER(retval);
- zval_dtor(retval);
- FREE_ZVAL(retval);
- }
- } else {
- PZVAL_LOCK(retval);
- AI_SET_PTR(&EX_T(opline->result.var), retval);
- }
+ PZVAL_LOCK(retval);
+ AI_SET_PTR(&EX_T(opline->result.var), retval);
if (0) {
zval_ptr_dtor(&offset);
ZEND_FREE_SPEC_TMP_HANDLER,
ZEND_FREE_SPEC_TMP_HANDLER,
ZEND_FREE_SPEC_TMP_HANDLER,
- ZEND_NULL_HANDLER,
- ZEND_NULL_HANDLER,
- ZEND_NULL_HANDLER,
- ZEND_NULL_HANDLER,
- ZEND_NULL_HANDLER,
+ ZEND_FREE_SPEC_VAR_HANDLER,
+ ZEND_FREE_SPEC_VAR_HANDLER,
+ ZEND_FREE_SPEC_VAR_HANDLER,
+ ZEND_FREE_SPEC_VAR_HANDLER,
+ ZEND_FREE_SPEC_VAR_HANDLER,
ZEND_NULL_HANDLER,
ZEND_NULL_HANDLER,
ZEND_NULL_HANDLER,