if (IS_VAR == IS_VAR && UNEXPECTED(object_ptr == NULL)) {
zend_error_noreturn(E_ERROR, "Cannot use string offset as an array");
}
- if (UNEXPECTED(Z_ISREF_P(object_ptr)) && Z_TYPE_P(Z_REFVAL_P(object_ptr)) == IS_OBJECT) {
- object_ptr = Z_REFVAL_P(object_ptr);
- }
- if (Z_TYPE_P(object_ptr) == IS_OBJECT) {
+ ZVAL_DEREF(object_ptr);
+ if (UNEXPECTED(Z_TYPE_P(object_ptr) == IS_OBJECT)) {
zval *property_name = opline->op2.zv;
if (IS_VAR == IS_VAR && UNEXPECTED(object_ptr == NULL)) {
zend_error_noreturn(E_ERROR, "Cannot use string offset as an array");
}
- if (UNEXPECTED(Z_ISREF_P(object_ptr)) && Z_TYPE_P(Z_REFVAL_P(object_ptr)) == IS_OBJECT) {
- object_ptr = Z_REFVAL_P(object_ptr);
- }
- if (Z_TYPE_P(object_ptr) == IS_OBJECT) {
+ ZVAL_DEREF(object_ptr);
+ if (UNEXPECTED(Z_TYPE_P(object_ptr) == IS_OBJECT)) {
zend_free_op free_op2;
zval *property_name = _get_zval_ptr_tmp(opline->op2.var, execute_data, &free_op2 TSRMLS_CC);
if (IS_VAR == IS_VAR && UNEXPECTED(object_ptr == NULL)) {
zend_error_noreturn(E_ERROR, "Cannot use string offset as an array");
}
- if (UNEXPECTED(Z_ISREF_P(object_ptr)) && Z_TYPE_P(Z_REFVAL_P(object_ptr)) == IS_OBJECT) {
- object_ptr = Z_REFVAL_P(object_ptr);
- }
- if (Z_TYPE_P(object_ptr) == IS_OBJECT) {
+ ZVAL_DEREF(object_ptr);
+ if (UNEXPECTED(Z_TYPE_P(object_ptr) == IS_OBJECT)) {
zend_free_op free_op2;
zval *property_name = _get_zval_ptr_var(opline->op2.var, execute_data, &free_op2 TSRMLS_CC);
if (IS_VAR == IS_VAR && UNEXPECTED(object_ptr == NULL)) {
zend_error_noreturn(E_ERROR, "Cannot use string offset as an array");
}
- if (UNEXPECTED(Z_ISREF_P(object_ptr)) && Z_TYPE_P(Z_REFVAL_P(object_ptr)) == IS_OBJECT) {
- object_ptr = Z_REFVAL_P(object_ptr);
- }
- if (Z_TYPE_P(object_ptr) == IS_OBJECT) {
+ ZVAL_DEREF(object_ptr);
+ if (UNEXPECTED(Z_TYPE_P(object_ptr) == IS_OBJECT)) {
zval *property_name = NULL;
if (IS_VAR == IS_VAR && UNEXPECTED(object_ptr == NULL)) {
zend_error_noreturn(E_ERROR, "Cannot use string offset as an array");
}
- if (UNEXPECTED(Z_ISREF_P(object_ptr)) && Z_TYPE_P(Z_REFVAL_P(object_ptr)) == IS_OBJECT) {
- object_ptr = Z_REFVAL_P(object_ptr);
- }
- if (Z_TYPE_P(object_ptr) == IS_OBJECT) {
+ ZVAL_DEREF(object_ptr);
+ if (UNEXPECTED(Z_TYPE_P(object_ptr) == IS_OBJECT)) {
zval *property_name = _get_zval_ptr_cv_BP_VAR_R(execute_data, opline->op2.var TSRMLS_CC);
if (IS_CV == IS_VAR && UNEXPECTED(object_ptr == NULL)) {
zend_error_noreturn(E_ERROR, "Cannot use string offset as an array");
}
- if (UNEXPECTED(Z_ISREF_P(object_ptr)) && Z_TYPE_P(Z_REFVAL_P(object_ptr)) == IS_OBJECT) {
- object_ptr = Z_REFVAL_P(object_ptr);
- }
- if (Z_TYPE_P(object_ptr) == IS_OBJECT) {
+ ZVAL_DEREF(object_ptr);
+ if (UNEXPECTED(Z_TYPE_P(object_ptr) == IS_OBJECT)) {
zval *property_name = opline->op2.zv;
if (IS_CV == IS_VAR && UNEXPECTED(object_ptr == NULL)) {
zend_error_noreturn(E_ERROR, "Cannot use string offset as an array");
}
- if (UNEXPECTED(Z_ISREF_P(object_ptr)) && Z_TYPE_P(Z_REFVAL_P(object_ptr)) == IS_OBJECT) {
- object_ptr = Z_REFVAL_P(object_ptr);
- }
- if (Z_TYPE_P(object_ptr) == IS_OBJECT) {
+ ZVAL_DEREF(object_ptr);
+ if (UNEXPECTED(Z_TYPE_P(object_ptr) == IS_OBJECT)) {
zend_free_op free_op2;
zval *property_name = _get_zval_ptr_tmp(opline->op2.var, execute_data, &free_op2 TSRMLS_CC);
if (IS_CV == IS_VAR && UNEXPECTED(object_ptr == NULL)) {
zend_error_noreturn(E_ERROR, "Cannot use string offset as an array");
}
- if (UNEXPECTED(Z_ISREF_P(object_ptr)) && Z_TYPE_P(Z_REFVAL_P(object_ptr)) == IS_OBJECT) {
- object_ptr = Z_REFVAL_P(object_ptr);
- }
- if (Z_TYPE_P(object_ptr) == IS_OBJECT) {
+ ZVAL_DEREF(object_ptr);
+ if (UNEXPECTED(Z_TYPE_P(object_ptr) == IS_OBJECT)) {
zend_free_op free_op2;
zval *property_name = _get_zval_ptr_var(opline->op2.var, execute_data, &free_op2 TSRMLS_CC);
if (IS_CV == IS_VAR && UNEXPECTED(object_ptr == NULL)) {
zend_error_noreturn(E_ERROR, "Cannot use string offset as an array");
}
- if (UNEXPECTED(Z_ISREF_P(object_ptr)) && Z_TYPE_P(Z_REFVAL_P(object_ptr)) == IS_OBJECT) {
- object_ptr = Z_REFVAL_P(object_ptr);
- }
- if (Z_TYPE_P(object_ptr) == IS_OBJECT) {
+ ZVAL_DEREF(object_ptr);
+ if (UNEXPECTED(Z_TYPE_P(object_ptr) == IS_OBJECT)) {
zval *property_name = NULL;
if (IS_CV == IS_VAR && UNEXPECTED(object_ptr == NULL)) {
zend_error_noreturn(E_ERROR, "Cannot use string offset as an array");
}
- if (UNEXPECTED(Z_ISREF_P(object_ptr)) && Z_TYPE_P(Z_REFVAL_P(object_ptr)) == IS_OBJECT) {
- object_ptr = Z_REFVAL_P(object_ptr);
- }
- if (Z_TYPE_P(object_ptr) == IS_OBJECT) {
+ ZVAL_DEREF(object_ptr);
+ if (UNEXPECTED(Z_TYPE_P(object_ptr) == IS_OBJECT)) {
zval *property_name = _get_zval_ptr_cv_BP_VAR_R(execute_data, opline->op2.var TSRMLS_CC);