&& Z_OBJ_HANDLER_P(var_ptr, get)
&& Z_OBJ_HANDLER_P(var_ptr, set)) {
/* proxy object */
- zval *val = Z_OBJ_HANDLER_P(var_ptr, get)(var_ptr TSRMLS_CC);
+ zval rv;
+ zval *val = Z_OBJ_HANDLER_P(var_ptr, get)(var_ptr, &rv TSRMLS_CC);
Z_ADDREF_P(val);
fast_increment_function(val);
Z_OBJ_HANDLER_P(var_ptr, set)(var_ptr, val TSRMLS_CC);
&& Z_OBJ_HANDLER_P(var_ptr, get)
&& Z_OBJ_HANDLER_P(var_ptr, set)) {
/* proxy object */
- zval *val = Z_OBJ_HANDLER_P(var_ptr, get)(var_ptr TSRMLS_CC);
+ zval rv;
+ zval *val = Z_OBJ_HANDLER_P(var_ptr, get)(var_ptr, &rv TSRMLS_CC);
Z_ADDREF_P(val);
fast_decrement_function(val);
Z_OBJ_HANDLER_P(var_ptr, set)(var_ptr, val TSRMLS_CC);
&& Z_OBJ_HANDLER_P(var_ptr, get)
&& Z_OBJ_HANDLER_P(var_ptr, set)) {
/* proxy object */
- zval *val = Z_OBJ_HANDLER_P(var_ptr, get)(var_ptr TSRMLS_CC);
+ zval rv;
+ zval *val = Z_OBJ_HANDLER_P(var_ptr, get)(var_ptr, &rv TSRMLS_CC);
Z_ADDREF_P(val);
fast_increment_function(val);
Z_OBJ_HANDLER_P(var_ptr, set)(var_ptr, val TSRMLS_CC);
&& Z_OBJ_HANDLER_P(var_ptr, get)
&& Z_OBJ_HANDLER_P(var_ptr, set)) {
/* proxy object */
- zval *val = Z_OBJ_HANDLER_P(var_ptr, get)(var_ptr TSRMLS_CC);
+ zval rv;
+ zval *val = Z_OBJ_HANDLER_P(var_ptr, get)(var_ptr, &rv TSRMLS_CC);
Z_ADDREF_P(val);
fast_decrement_function(val);
Z_OBJ_HANDLER_P(var_ptr, set)(var_ptr, val TSRMLS_CC);
}
if (z) {
if (Z_TYPE_P(z) == IS_OBJECT && Z_OBJ_HT_P(z)->get) {
- zval *value = Z_OBJ_HT_P(z)->get(z TSRMLS_CC);
+ zval rv;
+ zval *value = Z_OBJ_HT_P(z)->get(z, &rv TSRMLS_CC);
if (Z_REFCOUNT_P(z) == 0) {
zval_dtor(z);
}
- z = value;
+ ZVAL_COPY_VALUE(z, value);
}
//??? if (Z_REFCOUNTED_P(z)) Z_ADDREF_P(z);
SEPARATE_ZVAL_IF_NOT_REF(z);
if (UNEXPECTED(Z_TYPE_P(var_ptr) == IS_OBJECT) &&
UNEXPECTED(Z_OBJ_HANDLER_P(var_ptr, get) && Z_OBJ_HANDLER_P(var_ptr, set))) {
/* proxy object */
- zval *objval = Z_OBJ_HANDLER_P(var_ptr, get)(var_ptr TSRMLS_CC);
+ zval rv;
+ zval *objval = Z_OBJ_HANDLER_P(var_ptr, get)(var_ptr, &rv TSRMLS_CC);
Z_ADDREF_P(objval);
binary_op(objval, objval, value TSRMLS_CC);
Z_OBJ_HANDLER_P(var_ptr, set)(var_ptr, objval TSRMLS_CC);
if (UNEXPECTED(Z_TYPE_P(var_ptr) == IS_OBJECT) &&
UNEXPECTED(Z_OBJ_HANDLER_P(var_ptr, get) && Z_OBJ_HANDLER_P(var_ptr, set))) {
/* proxy object */
- zval *objval = Z_OBJ_HANDLER_P(var_ptr, get)(var_ptr TSRMLS_CC);
+ zval rv;
+ zval *objval = Z_OBJ_HANDLER_P(var_ptr, get)(var_ptr, &rv TSRMLS_CC);
Z_ADDREF_P(objval);
binary_op(objval, objval, value TSRMLS_CC);
Z_OBJ_HANDLER_P(var_ptr, set)(var_ptr, objval TSRMLS_CC);
zval *z = Z_OBJ_HT_P(object)->read_property(object, property, BP_VAR_R, ((IS_CONST == IS_CONST) ? opline->op2.literal : NULL), &rv TSRMLS_CC);
if (UNEXPECTED(Z_TYPE_P(z) == IS_OBJECT) && Z_OBJ_HT_P(z)->get) {
- zval *value = Z_OBJ_HT_P(z)->get(z TSRMLS_CC);
+ zval rv;
+ zval *value = Z_OBJ_HT_P(z)->get(z, &rv TSRMLS_CC);
if (Z_REFCOUNT_P(z) == 0) {
zval_dtor(z);
}
- z = value;
+ ZVAL_COPY_VALUE(z, value);
}
if (Z_REFCOUNTED_P(z)) Z_ADDREF_P(z);
SEPARATE_ZVAL_IF_NOT_REF(z);
zval z_copy;
if (UNEXPECTED(Z_TYPE_P(z) == IS_OBJECT) && Z_OBJ_HT_P(z)->get) {
- zval *value = Z_OBJ_HT_P(z)->get(z TSRMLS_CC);
+ zval rv;
+ zval *value = Z_OBJ_HT_P(z)->get(z, &rv TSRMLS_CC);
if (Z_REFCOUNT_P(z) == 0) {
zval_dtor(z);
}
- z = value;
+ ZVAL_COPY_VALUE(z, value);
}
ZVAL_DUP(retval, z);
ZVAL_DUP(&z_copy, z);
}
if (z) {
if (Z_TYPE_P(z) == IS_OBJECT && Z_OBJ_HT_P(z)->get) {
- zval *value = Z_OBJ_HT_P(z)->get(z TSRMLS_CC);
+ zval rv;
+ zval *value = Z_OBJ_HT_P(z)->get(z, &rv TSRMLS_CC);
if (Z_REFCOUNT_P(z) == 0) {
zval_dtor(z);
}
- z = value;
+ ZVAL_COPY_VALUE(z, value);
}
//??? if (Z_REFCOUNTED_P(z)) Z_ADDREF_P(z);
SEPARATE_ZVAL_IF_NOT_REF(z);
if (UNEXPECTED(Z_TYPE_P(var_ptr) == IS_OBJECT) &&
UNEXPECTED(Z_OBJ_HANDLER_P(var_ptr, get) && Z_OBJ_HANDLER_P(var_ptr, set))) {
/* proxy object */
- zval *objval = Z_OBJ_HANDLER_P(var_ptr, get)(var_ptr TSRMLS_CC);
+ zval rv;
+ zval *objval = Z_OBJ_HANDLER_P(var_ptr, get)(var_ptr, &rv TSRMLS_CC);
Z_ADDREF_P(objval);
binary_op(objval, objval, value TSRMLS_CC);
Z_OBJ_HANDLER_P(var_ptr, set)(var_ptr, objval TSRMLS_CC);
if (UNEXPECTED(Z_TYPE_P(var_ptr) == IS_OBJECT) &&
UNEXPECTED(Z_OBJ_HANDLER_P(var_ptr, get) && Z_OBJ_HANDLER_P(var_ptr, set))) {
/* proxy object */
- zval *objval = Z_OBJ_HANDLER_P(var_ptr, get)(var_ptr TSRMLS_CC);
+ zval rv;
+ zval *objval = Z_OBJ_HANDLER_P(var_ptr, get)(var_ptr, &rv TSRMLS_CC);
Z_ADDREF_P(objval);
binary_op(objval, objval, value TSRMLS_CC);
Z_OBJ_HANDLER_P(var_ptr, set)(var_ptr, objval TSRMLS_CC);
zval *z = Z_OBJ_HT_P(object)->read_property(object, property, BP_VAR_R, ((IS_TMP_VAR == IS_CONST) ? opline->op2.literal : NULL), &rv TSRMLS_CC);
if (UNEXPECTED(Z_TYPE_P(z) == IS_OBJECT) && Z_OBJ_HT_P(z)->get) {
- zval *value = Z_OBJ_HT_P(z)->get(z TSRMLS_CC);
+ zval rv;
+ zval *value = Z_OBJ_HT_P(z)->get(z, &rv TSRMLS_CC);
if (Z_REFCOUNT_P(z) == 0) {
zval_dtor(z);
}
- z = value;
+ ZVAL_COPY_VALUE(z, value);
}
if (Z_REFCOUNTED_P(z)) Z_ADDREF_P(z);
SEPARATE_ZVAL_IF_NOT_REF(z);
zval z_copy;
if (UNEXPECTED(Z_TYPE_P(z) == IS_OBJECT) && Z_OBJ_HT_P(z)->get) {
- zval *value = Z_OBJ_HT_P(z)->get(z TSRMLS_CC);
+ zval rv;
+ zval *value = Z_OBJ_HT_P(z)->get(z, &rv TSRMLS_CC);
if (Z_REFCOUNT_P(z) == 0) {
zval_dtor(z);
}
- z = value;
+ ZVAL_COPY_VALUE(z, value);
}
ZVAL_DUP(retval, z);
ZVAL_DUP(&z_copy, z);
}
if (z) {
if (Z_TYPE_P(z) == IS_OBJECT && Z_OBJ_HT_P(z)->get) {
- zval *value = Z_OBJ_HT_P(z)->get(z TSRMLS_CC);
+ zval rv;
+ zval *value = Z_OBJ_HT_P(z)->get(z, &rv TSRMLS_CC);
if (Z_REFCOUNT_P(z) == 0) {
zval_dtor(z);
}
- z = value;
+ ZVAL_COPY_VALUE(z, value);
}
//??? if (Z_REFCOUNTED_P(z)) Z_ADDREF_P(z);
SEPARATE_ZVAL_IF_NOT_REF(z);
if (UNEXPECTED(Z_TYPE_P(var_ptr) == IS_OBJECT) &&
UNEXPECTED(Z_OBJ_HANDLER_P(var_ptr, get) && Z_OBJ_HANDLER_P(var_ptr, set))) {
/* proxy object */
- zval *objval = Z_OBJ_HANDLER_P(var_ptr, get)(var_ptr TSRMLS_CC);
+ zval rv;
+ zval *objval = Z_OBJ_HANDLER_P(var_ptr, get)(var_ptr, &rv TSRMLS_CC);
Z_ADDREF_P(objval);
binary_op(objval, objval, value TSRMLS_CC);
Z_OBJ_HANDLER_P(var_ptr, set)(var_ptr, objval TSRMLS_CC);
if (UNEXPECTED(Z_TYPE_P(var_ptr) == IS_OBJECT) &&
UNEXPECTED(Z_OBJ_HANDLER_P(var_ptr, get) && Z_OBJ_HANDLER_P(var_ptr, set))) {
/* proxy object */
- zval *objval = Z_OBJ_HANDLER_P(var_ptr, get)(var_ptr TSRMLS_CC);
+ zval rv;
+ zval *objval = Z_OBJ_HANDLER_P(var_ptr, get)(var_ptr, &rv TSRMLS_CC);
Z_ADDREF_P(objval);
binary_op(objval, objval, value TSRMLS_CC);
Z_OBJ_HANDLER_P(var_ptr, set)(var_ptr, objval TSRMLS_CC);
zval *z = Z_OBJ_HT_P(object)->read_property(object, property, BP_VAR_R, ((IS_VAR == IS_CONST) ? opline->op2.literal : NULL), &rv TSRMLS_CC);
if (UNEXPECTED(Z_TYPE_P(z) == IS_OBJECT) && Z_OBJ_HT_P(z)->get) {
- zval *value = Z_OBJ_HT_P(z)->get(z TSRMLS_CC);
+ zval rv;
+ zval *value = Z_OBJ_HT_P(z)->get(z, &rv TSRMLS_CC);
if (Z_REFCOUNT_P(z) == 0) {
zval_dtor(z);
}
- z = value;
+ ZVAL_COPY_VALUE(z, value);
}
if (Z_REFCOUNTED_P(z)) Z_ADDREF_P(z);
SEPARATE_ZVAL_IF_NOT_REF(z);
zval z_copy;
if (UNEXPECTED(Z_TYPE_P(z) == IS_OBJECT) && Z_OBJ_HT_P(z)->get) {
- zval *value = Z_OBJ_HT_P(z)->get(z TSRMLS_CC);
+ zval rv;
+ zval *value = Z_OBJ_HT_P(z)->get(z, &rv TSRMLS_CC);
if (Z_REFCOUNT_P(z) == 0) {
zval_dtor(z);
}
- z = value;
+ ZVAL_COPY_VALUE(z, value);
}
ZVAL_DUP(retval, z);
ZVAL_DUP(&z_copy, z);
}
if (z) {
if (Z_TYPE_P(z) == IS_OBJECT && Z_OBJ_HT_P(z)->get) {
- zval *value = Z_OBJ_HT_P(z)->get(z TSRMLS_CC);
+ zval rv;
+ zval *value = Z_OBJ_HT_P(z)->get(z, &rv TSRMLS_CC);
if (Z_REFCOUNT_P(z) == 0) {
zval_dtor(z);
}
- z = value;
+ ZVAL_COPY_VALUE(z, value);
}
//??? if (Z_REFCOUNTED_P(z)) Z_ADDREF_P(z);
SEPARATE_ZVAL_IF_NOT_REF(z);
if (UNEXPECTED(Z_TYPE_P(var_ptr) == IS_OBJECT) &&
UNEXPECTED(Z_OBJ_HANDLER_P(var_ptr, get) && Z_OBJ_HANDLER_P(var_ptr, set))) {
/* proxy object */
- zval *objval = Z_OBJ_HANDLER_P(var_ptr, get)(var_ptr TSRMLS_CC);
+ zval rv;
+ zval *objval = Z_OBJ_HANDLER_P(var_ptr, get)(var_ptr, &rv TSRMLS_CC);
Z_ADDREF_P(objval);
binary_op(objval, objval, value TSRMLS_CC);
Z_OBJ_HANDLER_P(var_ptr, set)(var_ptr, objval TSRMLS_CC);
if (UNEXPECTED(Z_TYPE_P(var_ptr) == IS_OBJECT) &&
UNEXPECTED(Z_OBJ_HANDLER_P(var_ptr, get) && Z_OBJ_HANDLER_P(var_ptr, set))) {
/* proxy object */
- zval *objval = Z_OBJ_HANDLER_P(var_ptr, get)(var_ptr TSRMLS_CC);
+ zval rv;
+ zval *objval = Z_OBJ_HANDLER_P(var_ptr, get)(var_ptr, &rv TSRMLS_CC);
Z_ADDREF_P(objval);
binary_op(objval, objval, value TSRMLS_CC);
Z_OBJ_HANDLER_P(var_ptr, set)(var_ptr, objval TSRMLS_CC);
}
if (z) {
if (Z_TYPE_P(z) == IS_OBJECT && Z_OBJ_HT_P(z)->get) {
- zval *value = Z_OBJ_HT_P(z)->get(z TSRMLS_CC);
+ zval rv;
+ zval *value = Z_OBJ_HT_P(z)->get(z, &rv TSRMLS_CC);
if (Z_REFCOUNT_P(z) == 0) {
zval_dtor(z);
}
- z = value;
+ ZVAL_COPY_VALUE(z, value);
}
//??? if (Z_REFCOUNTED_P(z)) Z_ADDREF_P(z);
SEPARATE_ZVAL_IF_NOT_REF(z);
if (UNEXPECTED(Z_TYPE_P(var_ptr) == IS_OBJECT) &&
UNEXPECTED(Z_OBJ_HANDLER_P(var_ptr, get) && Z_OBJ_HANDLER_P(var_ptr, set))) {
/* proxy object */
- zval *objval = Z_OBJ_HANDLER_P(var_ptr, get)(var_ptr TSRMLS_CC);
+ zval rv;
+ zval *objval = Z_OBJ_HANDLER_P(var_ptr, get)(var_ptr, &rv TSRMLS_CC);
Z_ADDREF_P(objval);
binary_op(objval, objval, value TSRMLS_CC);
Z_OBJ_HANDLER_P(var_ptr, set)(var_ptr, objval TSRMLS_CC);
if (UNEXPECTED(Z_TYPE_P(var_ptr) == IS_OBJECT) &&
UNEXPECTED(Z_OBJ_HANDLER_P(var_ptr, get) && Z_OBJ_HANDLER_P(var_ptr, set))) {
/* proxy object */
- zval *objval = Z_OBJ_HANDLER_P(var_ptr, get)(var_ptr TSRMLS_CC);
+ zval rv;
+ zval *objval = Z_OBJ_HANDLER_P(var_ptr, get)(var_ptr, &rv TSRMLS_CC);
Z_ADDREF_P(objval);
binary_op(objval, objval, value TSRMLS_CC);
Z_OBJ_HANDLER_P(var_ptr, set)(var_ptr, objval TSRMLS_CC);
zval *z = Z_OBJ_HT_P(object)->read_property(object, property, BP_VAR_R, ((IS_CV == IS_CONST) ? opline->op2.literal : NULL), &rv TSRMLS_CC);
if (UNEXPECTED(Z_TYPE_P(z) == IS_OBJECT) && Z_OBJ_HT_P(z)->get) {
- zval *value = Z_OBJ_HT_P(z)->get(z TSRMLS_CC);
+ zval rv;
+ zval *value = Z_OBJ_HT_P(z)->get(z, &rv TSRMLS_CC);
if (Z_REFCOUNT_P(z) == 0) {
zval_dtor(z);
}
- z = value;
+ ZVAL_COPY_VALUE(z, value);
}
if (Z_REFCOUNTED_P(z)) Z_ADDREF_P(z);
SEPARATE_ZVAL_IF_NOT_REF(z);
zval z_copy;
if (UNEXPECTED(Z_TYPE_P(z) == IS_OBJECT) && Z_OBJ_HT_P(z)->get) {
- zval *value = Z_OBJ_HT_P(z)->get(z TSRMLS_CC);
+ zval rv;
+ zval *value = Z_OBJ_HT_P(z)->get(z, &rv TSRMLS_CC);
if (Z_REFCOUNT_P(z) == 0) {
zval_dtor(z);
}
- z = value;
+ ZVAL_COPY_VALUE(z, value);
}
ZVAL_DUP(retval, z);
ZVAL_DUP(&z_copy, z);
}
if (z) {
if (Z_TYPE_P(z) == IS_OBJECT && Z_OBJ_HT_P(z)->get) {
- zval *value = Z_OBJ_HT_P(z)->get(z TSRMLS_CC);
+ zval rv;
+ zval *value = Z_OBJ_HT_P(z)->get(z, &rv TSRMLS_CC);
if (Z_REFCOUNT_P(z) == 0) {
zval_dtor(z);
}
- z = value;
+ ZVAL_COPY_VALUE(z, value);
}
//??? if (Z_REFCOUNTED_P(z)) Z_ADDREF_P(z);
SEPARATE_ZVAL_IF_NOT_REF(z);
if (UNEXPECTED(Z_TYPE_P(var_ptr) == IS_OBJECT) &&
UNEXPECTED(Z_OBJ_HANDLER_P(var_ptr, get) && Z_OBJ_HANDLER_P(var_ptr, set))) {
/* proxy object */
- zval *objval = Z_OBJ_HANDLER_P(var_ptr, get)(var_ptr TSRMLS_CC);
+ zval rv;
+ zval *objval = Z_OBJ_HANDLER_P(var_ptr, get)(var_ptr, &rv TSRMLS_CC);
Z_ADDREF_P(objval);
binary_op(objval, objval, value TSRMLS_CC);
Z_OBJ_HANDLER_P(var_ptr, set)(var_ptr, objval TSRMLS_CC);
if (UNEXPECTED(Z_TYPE_P(var_ptr) == IS_OBJECT) &&
UNEXPECTED(Z_OBJ_HANDLER_P(var_ptr, get) && Z_OBJ_HANDLER_P(var_ptr, set))) {
/* proxy object */
- zval *objval = Z_OBJ_HANDLER_P(var_ptr, get)(var_ptr TSRMLS_CC);
+ zval rv;
+ zval *objval = Z_OBJ_HANDLER_P(var_ptr, get)(var_ptr, &rv TSRMLS_CC);
Z_ADDREF_P(objval);
binary_op(objval, objval, value TSRMLS_CC);
Z_OBJ_HANDLER_P(var_ptr, set)(var_ptr, objval TSRMLS_CC);
zval *z = Z_OBJ_HT_P(object)->read_property(object, property, BP_VAR_R, ((IS_CONST == IS_CONST) ? opline->op2.literal : NULL), &rv TSRMLS_CC);
if (UNEXPECTED(Z_TYPE_P(z) == IS_OBJECT) && Z_OBJ_HT_P(z)->get) {
- zval *value = Z_OBJ_HT_P(z)->get(z TSRMLS_CC);
+ zval rv;
+ zval *value = Z_OBJ_HT_P(z)->get(z, &rv TSRMLS_CC);
if (Z_REFCOUNT_P(z) == 0) {
zval_dtor(z);
}
- z = value;
+ ZVAL_COPY_VALUE(z, value);
}
if (Z_REFCOUNTED_P(z)) Z_ADDREF_P(z);
SEPARATE_ZVAL_IF_NOT_REF(z);
zval z_copy;
if (UNEXPECTED(Z_TYPE_P(z) == IS_OBJECT) && Z_OBJ_HT_P(z)->get) {
- zval *value = Z_OBJ_HT_P(z)->get(z TSRMLS_CC);
+ zval rv;
+ zval *value = Z_OBJ_HT_P(z)->get(z, &rv TSRMLS_CC);
if (Z_REFCOUNT_P(z) == 0) {
zval_dtor(z);
}
- z = value;
+ ZVAL_COPY_VALUE(z, value);
}
ZVAL_DUP(retval, z);
ZVAL_DUP(&z_copy, z);
}
if (z) {
if (Z_TYPE_P(z) == IS_OBJECT && Z_OBJ_HT_P(z)->get) {
- zval *value = Z_OBJ_HT_P(z)->get(z TSRMLS_CC);
+ zval rv;
+ zval *value = Z_OBJ_HT_P(z)->get(z, &rv TSRMLS_CC);
if (Z_REFCOUNT_P(z) == 0) {
zval_dtor(z);
}
- z = value;
+ ZVAL_COPY_VALUE(z, value);
}
//??? if (Z_REFCOUNTED_P(z)) Z_ADDREF_P(z);
SEPARATE_ZVAL_IF_NOT_REF(z);
if (UNEXPECTED(Z_TYPE_P(var_ptr) == IS_OBJECT) &&
UNEXPECTED(Z_OBJ_HANDLER_P(var_ptr, get) && Z_OBJ_HANDLER_P(var_ptr, set))) {
/* proxy object */
- zval *objval = Z_OBJ_HANDLER_P(var_ptr, get)(var_ptr TSRMLS_CC);
+ zval rv;
+ zval *objval = Z_OBJ_HANDLER_P(var_ptr, get)(var_ptr, &rv TSRMLS_CC);
Z_ADDREF_P(objval);
binary_op(objval, objval, value TSRMLS_CC);
Z_OBJ_HANDLER_P(var_ptr, set)(var_ptr, objval TSRMLS_CC);
if (UNEXPECTED(Z_TYPE_P(var_ptr) == IS_OBJECT) &&
UNEXPECTED(Z_OBJ_HANDLER_P(var_ptr, get) && Z_OBJ_HANDLER_P(var_ptr, set))) {
/* proxy object */
- zval *objval = Z_OBJ_HANDLER_P(var_ptr, get)(var_ptr TSRMLS_CC);
+ zval rv;
+ zval *objval = Z_OBJ_HANDLER_P(var_ptr, get)(var_ptr, &rv TSRMLS_CC);
Z_ADDREF_P(objval);
binary_op(objval, objval, value TSRMLS_CC);
Z_OBJ_HANDLER_P(var_ptr, set)(var_ptr, objval TSRMLS_CC);
zval *z = Z_OBJ_HT_P(object)->read_property(object, property, BP_VAR_R, ((IS_TMP_VAR == IS_CONST) ? opline->op2.literal : NULL), &rv TSRMLS_CC);
if (UNEXPECTED(Z_TYPE_P(z) == IS_OBJECT) && Z_OBJ_HT_P(z)->get) {
- zval *value = Z_OBJ_HT_P(z)->get(z TSRMLS_CC);
+ zval rv;
+ zval *value = Z_OBJ_HT_P(z)->get(z, &rv TSRMLS_CC);
if (Z_REFCOUNT_P(z) == 0) {
zval_dtor(z);
}
- z = value;
+ ZVAL_COPY_VALUE(z, value);
}
if (Z_REFCOUNTED_P(z)) Z_ADDREF_P(z);
SEPARATE_ZVAL_IF_NOT_REF(z);
zval z_copy;
if (UNEXPECTED(Z_TYPE_P(z) == IS_OBJECT) && Z_OBJ_HT_P(z)->get) {
- zval *value = Z_OBJ_HT_P(z)->get(z TSRMLS_CC);
+ zval rv;
+ zval *value = Z_OBJ_HT_P(z)->get(z, &rv TSRMLS_CC);
if (Z_REFCOUNT_P(z) == 0) {
zval_dtor(z);
}
- z = value;
+ ZVAL_COPY_VALUE(z, value);
}
ZVAL_DUP(retval, z);
ZVAL_DUP(&z_copy, z);
}
if (z) {
if (Z_TYPE_P(z) == IS_OBJECT && Z_OBJ_HT_P(z)->get) {
- zval *value = Z_OBJ_HT_P(z)->get(z TSRMLS_CC);
+ zval rv;
+ zval *value = Z_OBJ_HT_P(z)->get(z, &rv TSRMLS_CC);
if (Z_REFCOUNT_P(z) == 0) {
zval_dtor(z);
}
- z = value;
+ ZVAL_COPY_VALUE(z, value);
}
//??? if (Z_REFCOUNTED_P(z)) Z_ADDREF_P(z);
SEPARATE_ZVAL_IF_NOT_REF(z);
if (UNEXPECTED(Z_TYPE_P(var_ptr) == IS_OBJECT) &&
UNEXPECTED(Z_OBJ_HANDLER_P(var_ptr, get) && Z_OBJ_HANDLER_P(var_ptr, set))) {
/* proxy object */
- zval *objval = Z_OBJ_HANDLER_P(var_ptr, get)(var_ptr TSRMLS_CC);
+ zval rv;
+ zval *objval = Z_OBJ_HANDLER_P(var_ptr, get)(var_ptr, &rv TSRMLS_CC);
Z_ADDREF_P(objval);
binary_op(objval, objval, value TSRMLS_CC);
Z_OBJ_HANDLER_P(var_ptr, set)(var_ptr, objval TSRMLS_CC);
if (UNEXPECTED(Z_TYPE_P(var_ptr) == IS_OBJECT) &&
UNEXPECTED(Z_OBJ_HANDLER_P(var_ptr, get) && Z_OBJ_HANDLER_P(var_ptr, set))) {
/* proxy object */
- zval *objval = Z_OBJ_HANDLER_P(var_ptr, get)(var_ptr TSRMLS_CC);
+ zval rv;
+ zval *objval = Z_OBJ_HANDLER_P(var_ptr, get)(var_ptr, &rv TSRMLS_CC);
Z_ADDREF_P(objval);
binary_op(objval, objval, value TSRMLS_CC);
Z_OBJ_HANDLER_P(var_ptr, set)(var_ptr, objval TSRMLS_CC);
zval *z = Z_OBJ_HT_P(object)->read_property(object, property, BP_VAR_R, ((IS_VAR == IS_CONST) ? opline->op2.literal : NULL), &rv TSRMLS_CC);
if (UNEXPECTED(Z_TYPE_P(z) == IS_OBJECT) && Z_OBJ_HT_P(z)->get) {
- zval *value = Z_OBJ_HT_P(z)->get(z TSRMLS_CC);
+ zval rv;
+ zval *value = Z_OBJ_HT_P(z)->get(z, &rv TSRMLS_CC);
if (Z_REFCOUNT_P(z) == 0) {
zval_dtor(z);
}
- z = value;
+ ZVAL_COPY_VALUE(z, value);
}
if (Z_REFCOUNTED_P(z)) Z_ADDREF_P(z);
SEPARATE_ZVAL_IF_NOT_REF(z);
zval z_copy;
if (UNEXPECTED(Z_TYPE_P(z) == IS_OBJECT) && Z_OBJ_HT_P(z)->get) {
- zval *value = Z_OBJ_HT_P(z)->get(z TSRMLS_CC);
+ zval rv;
+ zval *value = Z_OBJ_HT_P(z)->get(z, &rv TSRMLS_CC);
if (Z_REFCOUNT_P(z) == 0) {
zval_dtor(z);
}
- z = value;
+ ZVAL_COPY_VALUE(z, value);
}
ZVAL_DUP(retval, z);
ZVAL_DUP(&z_copy, z);
}
if (z) {
if (Z_TYPE_P(z) == IS_OBJECT && Z_OBJ_HT_P(z)->get) {
- zval *value = Z_OBJ_HT_P(z)->get(z TSRMLS_CC);
+ zval rv;
+ zval *value = Z_OBJ_HT_P(z)->get(z, &rv TSRMLS_CC);
if (Z_REFCOUNT_P(z) == 0) {
zval_dtor(z);
}
- z = value;
+ ZVAL_COPY_VALUE(z, value);
}
//??? if (Z_REFCOUNTED_P(z)) Z_ADDREF_P(z);
SEPARATE_ZVAL_IF_NOT_REF(z);
if (UNEXPECTED(Z_TYPE_P(var_ptr) == IS_OBJECT) &&
UNEXPECTED(Z_OBJ_HANDLER_P(var_ptr, get) && Z_OBJ_HANDLER_P(var_ptr, set))) {
/* proxy object */
- zval *objval = Z_OBJ_HANDLER_P(var_ptr, get)(var_ptr TSRMLS_CC);
+ zval rv;
+ zval *objval = Z_OBJ_HANDLER_P(var_ptr, get)(var_ptr, &rv TSRMLS_CC);
Z_ADDREF_P(objval);
binary_op(objval, objval, value TSRMLS_CC);
Z_OBJ_HANDLER_P(var_ptr, set)(var_ptr, objval TSRMLS_CC);
if (UNEXPECTED(Z_TYPE_P(var_ptr) == IS_OBJECT) &&
UNEXPECTED(Z_OBJ_HANDLER_P(var_ptr, get) && Z_OBJ_HANDLER_P(var_ptr, set))) {
/* proxy object */
- zval *objval = Z_OBJ_HANDLER_P(var_ptr, get)(var_ptr TSRMLS_CC);
+ zval rv;
+ zval *objval = Z_OBJ_HANDLER_P(var_ptr, get)(var_ptr, &rv TSRMLS_CC);
Z_ADDREF_P(objval);
binary_op(objval, objval, value TSRMLS_CC);
Z_OBJ_HANDLER_P(var_ptr, set)(var_ptr, objval TSRMLS_CC);
}
if (z) {
if (Z_TYPE_P(z) == IS_OBJECT && Z_OBJ_HT_P(z)->get) {
- zval *value = Z_OBJ_HT_P(z)->get(z TSRMLS_CC);
+ zval rv;
+ zval *value = Z_OBJ_HT_P(z)->get(z, &rv TSRMLS_CC);
if (Z_REFCOUNT_P(z) == 0) {
zval_dtor(z);
}
- z = value;
+ ZVAL_COPY_VALUE(z, value);
}
//??? if (Z_REFCOUNTED_P(z)) Z_ADDREF_P(z);
SEPARATE_ZVAL_IF_NOT_REF(z);
if (UNEXPECTED(Z_TYPE_P(var_ptr) == IS_OBJECT) &&
UNEXPECTED(Z_OBJ_HANDLER_P(var_ptr, get) && Z_OBJ_HANDLER_P(var_ptr, set))) {
/* proxy object */
- zval *objval = Z_OBJ_HANDLER_P(var_ptr, get)(var_ptr TSRMLS_CC);
+ zval rv;
+ zval *objval = Z_OBJ_HANDLER_P(var_ptr, get)(var_ptr, &rv TSRMLS_CC);
Z_ADDREF_P(objval);
binary_op(objval, objval, value TSRMLS_CC);
Z_OBJ_HANDLER_P(var_ptr, set)(var_ptr, objval TSRMLS_CC);
if (UNEXPECTED(Z_TYPE_P(var_ptr) == IS_OBJECT) &&
UNEXPECTED(Z_OBJ_HANDLER_P(var_ptr, get) && Z_OBJ_HANDLER_P(var_ptr, set))) {
/* proxy object */
- zval *objval = Z_OBJ_HANDLER_P(var_ptr, get)(var_ptr TSRMLS_CC);
+ zval rv;
+ zval *objval = Z_OBJ_HANDLER_P(var_ptr, get)(var_ptr, &rv TSRMLS_CC);
Z_ADDREF_P(objval);
binary_op(objval, objval, value TSRMLS_CC);
Z_OBJ_HANDLER_P(var_ptr, set)(var_ptr, objval TSRMLS_CC);
zval *z = Z_OBJ_HT_P(object)->read_property(object, property, BP_VAR_R, ((IS_CV == IS_CONST) ? opline->op2.literal : NULL), &rv TSRMLS_CC);
if (UNEXPECTED(Z_TYPE_P(z) == IS_OBJECT) && Z_OBJ_HT_P(z)->get) {
- zval *value = Z_OBJ_HT_P(z)->get(z TSRMLS_CC);
+ zval rv;
+ zval *value = Z_OBJ_HT_P(z)->get(z, &rv TSRMLS_CC);
if (Z_REFCOUNT_P(z) == 0) {
zval_dtor(z);
}
- z = value;
+ ZVAL_COPY_VALUE(z, value);
}
if (Z_REFCOUNTED_P(z)) Z_ADDREF_P(z);
SEPARATE_ZVAL_IF_NOT_REF(z);
zval z_copy;
if (UNEXPECTED(Z_TYPE_P(z) == IS_OBJECT) && Z_OBJ_HT_P(z)->get) {
- zval *value = Z_OBJ_HT_P(z)->get(z TSRMLS_CC);
+ zval rv;
+ zval *value = Z_OBJ_HT_P(z)->get(z, &rv TSRMLS_CC);
if (Z_REFCOUNT_P(z) == 0) {
zval_dtor(z);
}
- z = value;
+ ZVAL_COPY_VALUE(z, value);
}
ZVAL_DUP(retval, z);
ZVAL_DUP(&z_copy, z);
&& Z_OBJ_HANDLER_P(var_ptr, get)
&& Z_OBJ_HANDLER_P(var_ptr, set)) {
/* proxy object */
- zval *val = Z_OBJ_HANDLER_P(var_ptr, get)(var_ptr TSRMLS_CC);
+ zval rv;
+ zval *val = Z_OBJ_HANDLER_P(var_ptr, get)(var_ptr, &rv TSRMLS_CC);
Z_ADDREF_P(val);
fast_increment_function(val);
Z_OBJ_HANDLER_P(var_ptr, set)(var_ptr, val TSRMLS_CC);
&& Z_OBJ_HANDLER_P(var_ptr, get)
&& Z_OBJ_HANDLER_P(var_ptr, set)) {
/* proxy object */
- zval *val = Z_OBJ_HANDLER_P(var_ptr, get)(var_ptr TSRMLS_CC);
+ zval rv;
+ zval *val = Z_OBJ_HANDLER_P(var_ptr, get)(var_ptr, &rv TSRMLS_CC);
Z_ADDREF_P(val);
fast_decrement_function(val);
Z_OBJ_HANDLER_P(var_ptr, set)(var_ptr, val TSRMLS_CC);
&& Z_OBJ_HANDLER_P(var_ptr, get)
&& Z_OBJ_HANDLER_P(var_ptr, set)) {
/* proxy object */
- zval *val = Z_OBJ_HANDLER_P(var_ptr, get)(var_ptr TSRMLS_CC);
+ zval rv;
+ zval *val = Z_OBJ_HANDLER_P(var_ptr, get)(var_ptr, &rv TSRMLS_CC);
Z_ADDREF_P(val);
fast_increment_function(val);
Z_OBJ_HANDLER_P(var_ptr, set)(var_ptr, val TSRMLS_CC);
&& Z_OBJ_HANDLER_P(var_ptr, get)
&& Z_OBJ_HANDLER_P(var_ptr, set)) {
/* proxy object */
- zval *val = Z_OBJ_HANDLER_P(var_ptr, get)(var_ptr TSRMLS_CC);
+ zval rv;
+ zval *val = Z_OBJ_HANDLER_P(var_ptr, get)(var_ptr, &rv TSRMLS_CC);
Z_ADDREF_P(val);
fast_decrement_function(val);
Z_OBJ_HANDLER_P(var_ptr, set)(var_ptr, val TSRMLS_CC);
}
if (z) {
if (Z_TYPE_P(z) == IS_OBJECT && Z_OBJ_HT_P(z)->get) {
- zval *value = Z_OBJ_HT_P(z)->get(z TSRMLS_CC);
+ zval rv;
+ zval *value = Z_OBJ_HT_P(z)->get(z, &rv TSRMLS_CC);
if (Z_REFCOUNT_P(z) == 0) {
zval_dtor(z);
}
- z = value;
+ ZVAL_COPY_VALUE(z, value);
}
//??? if (Z_REFCOUNTED_P(z)) Z_ADDREF_P(z);
SEPARATE_ZVAL_IF_NOT_REF(z);
if (UNEXPECTED(Z_TYPE_P(var_ptr) == IS_OBJECT) &&
UNEXPECTED(Z_OBJ_HANDLER_P(var_ptr, get) && Z_OBJ_HANDLER_P(var_ptr, set))) {
/* proxy object */
- zval *objval = Z_OBJ_HANDLER_P(var_ptr, get)(var_ptr TSRMLS_CC);
+ zval rv;
+ zval *objval = Z_OBJ_HANDLER_P(var_ptr, get)(var_ptr, &rv TSRMLS_CC);
Z_ADDREF_P(objval);
binary_op(objval, objval, value TSRMLS_CC);
Z_OBJ_HANDLER_P(var_ptr, set)(var_ptr, objval TSRMLS_CC);
if (UNEXPECTED(Z_TYPE_P(var_ptr) == IS_OBJECT) &&
UNEXPECTED(Z_OBJ_HANDLER_P(var_ptr, get) && Z_OBJ_HANDLER_P(var_ptr, set))) {
/* proxy object */
- zval *objval = Z_OBJ_HANDLER_P(var_ptr, get)(var_ptr TSRMLS_CC);
+ zval rv;
+ zval *objval = Z_OBJ_HANDLER_P(var_ptr, get)(var_ptr, &rv TSRMLS_CC);
Z_ADDREF_P(objval);
binary_op(objval, objval, value TSRMLS_CC);
Z_OBJ_HANDLER_P(var_ptr, set)(var_ptr, objval TSRMLS_CC);
zval *z = Z_OBJ_HT_P(object)->read_property(object, property, BP_VAR_R, ((IS_CONST == IS_CONST) ? opline->op2.literal : NULL), &rv TSRMLS_CC);
if (UNEXPECTED(Z_TYPE_P(z) == IS_OBJECT) && Z_OBJ_HT_P(z)->get) {
- zval *value = Z_OBJ_HT_P(z)->get(z TSRMLS_CC);
+ zval rv;
+ zval *value = Z_OBJ_HT_P(z)->get(z, &rv TSRMLS_CC);
if (Z_REFCOUNT_P(z) == 0) {
zval_dtor(z);
}
- z = value;
+ ZVAL_COPY_VALUE(z, value);
}
if (Z_REFCOUNTED_P(z)) Z_ADDREF_P(z);
SEPARATE_ZVAL_IF_NOT_REF(z);
zval z_copy;
if (UNEXPECTED(Z_TYPE_P(z) == IS_OBJECT) && Z_OBJ_HT_P(z)->get) {
- zval *value = Z_OBJ_HT_P(z)->get(z TSRMLS_CC);
+ zval rv;
+ zval *value = Z_OBJ_HT_P(z)->get(z, &rv TSRMLS_CC);
if (Z_REFCOUNT_P(z) == 0) {
zval_dtor(z);
}
- z = value;
+ ZVAL_COPY_VALUE(z, value);
}
ZVAL_DUP(retval, z);
ZVAL_DUP(&z_copy, z);
}
if (z) {
if (Z_TYPE_P(z) == IS_OBJECT && Z_OBJ_HT_P(z)->get) {
- zval *value = Z_OBJ_HT_P(z)->get(z TSRMLS_CC);
+ zval rv;
+ zval *value = Z_OBJ_HT_P(z)->get(z, &rv TSRMLS_CC);
if (Z_REFCOUNT_P(z) == 0) {
zval_dtor(z);
}
- z = value;
+ ZVAL_COPY_VALUE(z, value);
}
//??? if (Z_REFCOUNTED_P(z)) Z_ADDREF_P(z);
SEPARATE_ZVAL_IF_NOT_REF(z);
if (UNEXPECTED(Z_TYPE_P(var_ptr) == IS_OBJECT) &&
UNEXPECTED(Z_OBJ_HANDLER_P(var_ptr, get) && Z_OBJ_HANDLER_P(var_ptr, set))) {
/* proxy object */
- zval *objval = Z_OBJ_HANDLER_P(var_ptr, get)(var_ptr TSRMLS_CC);
+ zval rv;
+ zval *objval = Z_OBJ_HANDLER_P(var_ptr, get)(var_ptr, &rv TSRMLS_CC);
Z_ADDREF_P(objval);
binary_op(objval, objval, value TSRMLS_CC);
Z_OBJ_HANDLER_P(var_ptr, set)(var_ptr, objval TSRMLS_CC);
if (UNEXPECTED(Z_TYPE_P(var_ptr) == IS_OBJECT) &&
UNEXPECTED(Z_OBJ_HANDLER_P(var_ptr, get) && Z_OBJ_HANDLER_P(var_ptr, set))) {
/* proxy object */
- zval *objval = Z_OBJ_HANDLER_P(var_ptr, get)(var_ptr TSRMLS_CC);
+ zval rv;
+ zval *objval = Z_OBJ_HANDLER_P(var_ptr, get)(var_ptr, &rv TSRMLS_CC);
Z_ADDREF_P(objval);
binary_op(objval, objval, value TSRMLS_CC);
Z_OBJ_HANDLER_P(var_ptr, set)(var_ptr, objval TSRMLS_CC);
zval *z = Z_OBJ_HT_P(object)->read_property(object, property, BP_VAR_R, ((IS_TMP_VAR == IS_CONST) ? opline->op2.literal : NULL), &rv TSRMLS_CC);
if (UNEXPECTED(Z_TYPE_P(z) == IS_OBJECT) && Z_OBJ_HT_P(z)->get) {
- zval *value = Z_OBJ_HT_P(z)->get(z TSRMLS_CC);
+ zval rv;
+ zval *value = Z_OBJ_HT_P(z)->get(z, &rv TSRMLS_CC);
if (Z_REFCOUNT_P(z) == 0) {
zval_dtor(z);
}
- z = value;
+ ZVAL_COPY_VALUE(z, value);
}
if (Z_REFCOUNTED_P(z)) Z_ADDREF_P(z);
SEPARATE_ZVAL_IF_NOT_REF(z);
zval z_copy;
if (UNEXPECTED(Z_TYPE_P(z) == IS_OBJECT) && Z_OBJ_HT_P(z)->get) {
- zval *value = Z_OBJ_HT_P(z)->get(z TSRMLS_CC);
+ zval rv;
+ zval *value = Z_OBJ_HT_P(z)->get(z, &rv TSRMLS_CC);
if (Z_REFCOUNT_P(z) == 0) {
zval_dtor(z);
}
- z = value;
+ ZVAL_COPY_VALUE(z, value);
}
ZVAL_DUP(retval, z);
ZVAL_DUP(&z_copy, z);
}
if (z) {
if (Z_TYPE_P(z) == IS_OBJECT && Z_OBJ_HT_P(z)->get) {
- zval *value = Z_OBJ_HT_P(z)->get(z TSRMLS_CC);
+ zval rv;
+ zval *value = Z_OBJ_HT_P(z)->get(z, &rv TSRMLS_CC);
if (Z_REFCOUNT_P(z) == 0) {
zval_dtor(z);
}
- z = value;
+ ZVAL_COPY_VALUE(z, value);
}
//??? if (Z_REFCOUNTED_P(z)) Z_ADDREF_P(z);
SEPARATE_ZVAL_IF_NOT_REF(z);
if (UNEXPECTED(Z_TYPE_P(var_ptr) == IS_OBJECT) &&
UNEXPECTED(Z_OBJ_HANDLER_P(var_ptr, get) && Z_OBJ_HANDLER_P(var_ptr, set))) {
/* proxy object */
- zval *objval = Z_OBJ_HANDLER_P(var_ptr, get)(var_ptr TSRMLS_CC);
+ zval rv;
+ zval *objval = Z_OBJ_HANDLER_P(var_ptr, get)(var_ptr, &rv TSRMLS_CC);
Z_ADDREF_P(objval);
binary_op(objval, objval, value TSRMLS_CC);
Z_OBJ_HANDLER_P(var_ptr, set)(var_ptr, objval TSRMLS_CC);
if (UNEXPECTED(Z_TYPE_P(var_ptr) == IS_OBJECT) &&
UNEXPECTED(Z_OBJ_HANDLER_P(var_ptr, get) && Z_OBJ_HANDLER_P(var_ptr, set))) {
/* proxy object */
- zval *objval = Z_OBJ_HANDLER_P(var_ptr, get)(var_ptr TSRMLS_CC);
+ zval rv;
+ zval *objval = Z_OBJ_HANDLER_P(var_ptr, get)(var_ptr, &rv TSRMLS_CC);
Z_ADDREF_P(objval);
binary_op(objval, objval, value TSRMLS_CC);
Z_OBJ_HANDLER_P(var_ptr, set)(var_ptr, objval TSRMLS_CC);
zval *z = Z_OBJ_HT_P(object)->read_property(object, property, BP_VAR_R, ((IS_VAR == IS_CONST) ? opline->op2.literal : NULL), &rv TSRMLS_CC);
if (UNEXPECTED(Z_TYPE_P(z) == IS_OBJECT) && Z_OBJ_HT_P(z)->get) {
- zval *value = Z_OBJ_HT_P(z)->get(z TSRMLS_CC);
+ zval rv;
+ zval *value = Z_OBJ_HT_P(z)->get(z, &rv TSRMLS_CC);
if (Z_REFCOUNT_P(z) == 0) {
zval_dtor(z);
}
- z = value;
+ ZVAL_COPY_VALUE(z, value);
}
if (Z_REFCOUNTED_P(z)) Z_ADDREF_P(z);
SEPARATE_ZVAL_IF_NOT_REF(z);
zval z_copy;
if (UNEXPECTED(Z_TYPE_P(z) == IS_OBJECT) && Z_OBJ_HT_P(z)->get) {
- zval *value = Z_OBJ_HT_P(z)->get(z TSRMLS_CC);
+ zval rv;
+ zval *value = Z_OBJ_HT_P(z)->get(z, &rv TSRMLS_CC);
if (Z_REFCOUNT_P(z) == 0) {
zval_dtor(z);
}
- z = value;
+ ZVAL_COPY_VALUE(z, value);
}
ZVAL_DUP(retval, z);
ZVAL_DUP(&z_copy, z);
}
if (z) {
if (Z_TYPE_P(z) == IS_OBJECT && Z_OBJ_HT_P(z)->get) {
- zval *value = Z_OBJ_HT_P(z)->get(z TSRMLS_CC);
+ zval rv;
+ zval *value = Z_OBJ_HT_P(z)->get(z, &rv TSRMLS_CC);
if (Z_REFCOUNT_P(z) == 0) {
zval_dtor(z);
}
- z = value;
+ ZVAL_COPY_VALUE(z, value);
}
//??? if (Z_REFCOUNTED_P(z)) Z_ADDREF_P(z);
SEPARATE_ZVAL_IF_NOT_REF(z);
if (UNEXPECTED(Z_TYPE_P(var_ptr) == IS_OBJECT) &&
UNEXPECTED(Z_OBJ_HANDLER_P(var_ptr, get) && Z_OBJ_HANDLER_P(var_ptr, set))) {
/* proxy object */
- zval *objval = Z_OBJ_HANDLER_P(var_ptr, get)(var_ptr TSRMLS_CC);
+ zval rv;
+ zval *objval = Z_OBJ_HANDLER_P(var_ptr, get)(var_ptr, &rv TSRMLS_CC);
Z_ADDREF_P(objval);
binary_op(objval, objval, value TSRMLS_CC);
Z_OBJ_HANDLER_P(var_ptr, set)(var_ptr, objval TSRMLS_CC);
if (UNEXPECTED(Z_TYPE_P(var_ptr) == IS_OBJECT) &&
UNEXPECTED(Z_OBJ_HANDLER_P(var_ptr, get) && Z_OBJ_HANDLER_P(var_ptr, set))) {
/* proxy object */
- zval *objval = Z_OBJ_HANDLER_P(var_ptr, get)(var_ptr TSRMLS_CC);
+ zval rv;
+ zval *objval = Z_OBJ_HANDLER_P(var_ptr, get)(var_ptr, &rv TSRMLS_CC);
Z_ADDREF_P(objval);
binary_op(objval, objval, value TSRMLS_CC);
Z_OBJ_HANDLER_P(var_ptr, set)(var_ptr, objval TSRMLS_CC);
}
if (z) {
if (Z_TYPE_P(z) == IS_OBJECT && Z_OBJ_HT_P(z)->get) {
- zval *value = Z_OBJ_HT_P(z)->get(z TSRMLS_CC);
+ zval rv;
+ zval *value = Z_OBJ_HT_P(z)->get(z, &rv TSRMLS_CC);
if (Z_REFCOUNT_P(z) == 0) {
zval_dtor(z);
}
- z = value;
+ ZVAL_COPY_VALUE(z, value);
}
//??? if (Z_REFCOUNTED_P(z)) Z_ADDREF_P(z);
SEPARATE_ZVAL_IF_NOT_REF(z);
if (UNEXPECTED(Z_TYPE_P(var_ptr) == IS_OBJECT) &&
UNEXPECTED(Z_OBJ_HANDLER_P(var_ptr, get) && Z_OBJ_HANDLER_P(var_ptr, set))) {
/* proxy object */
- zval *objval = Z_OBJ_HANDLER_P(var_ptr, get)(var_ptr TSRMLS_CC);
+ zval rv;
+ zval *objval = Z_OBJ_HANDLER_P(var_ptr, get)(var_ptr, &rv TSRMLS_CC);
Z_ADDREF_P(objval);
binary_op(objval, objval, value TSRMLS_CC);
Z_OBJ_HANDLER_P(var_ptr, set)(var_ptr, objval TSRMLS_CC);
if (UNEXPECTED(Z_TYPE_P(var_ptr) == IS_OBJECT) &&
UNEXPECTED(Z_OBJ_HANDLER_P(var_ptr, get) && Z_OBJ_HANDLER_P(var_ptr, set))) {
/* proxy object */
- zval *objval = Z_OBJ_HANDLER_P(var_ptr, get)(var_ptr TSRMLS_CC);
+ zval rv;
+ zval *objval = Z_OBJ_HANDLER_P(var_ptr, get)(var_ptr, &rv TSRMLS_CC);
Z_ADDREF_P(objval);
binary_op(objval, objval, value TSRMLS_CC);
Z_OBJ_HANDLER_P(var_ptr, set)(var_ptr, objval TSRMLS_CC);
zval *z = Z_OBJ_HT_P(object)->read_property(object, property, BP_VAR_R, ((IS_CV == IS_CONST) ? opline->op2.literal : NULL), &rv TSRMLS_CC);
if (UNEXPECTED(Z_TYPE_P(z) == IS_OBJECT) && Z_OBJ_HT_P(z)->get) {
- zval *value = Z_OBJ_HT_P(z)->get(z TSRMLS_CC);
+ zval rv;
+ zval *value = Z_OBJ_HT_P(z)->get(z, &rv TSRMLS_CC);
if (Z_REFCOUNT_P(z) == 0) {
zval_dtor(z);
}
- z = value;
+ ZVAL_COPY_VALUE(z, value);
}
if (Z_REFCOUNTED_P(z)) Z_ADDREF_P(z);
SEPARATE_ZVAL_IF_NOT_REF(z);
zval z_copy;
if (UNEXPECTED(Z_TYPE_P(z) == IS_OBJECT) && Z_OBJ_HT_P(z)->get) {
- zval *value = Z_OBJ_HT_P(z)->get(z TSRMLS_CC);
+ zval rv;
+ zval *value = Z_OBJ_HT_P(z)->get(z, &rv TSRMLS_CC);
if (Z_REFCOUNT_P(z) == 0) {
zval_dtor(z);
}
- z = value;
+ ZVAL_COPY_VALUE(z, value);
}
ZVAL_DUP(retval, z);
ZVAL_DUP(&z_copy, z);