summaryrefslogtreecommitdiff
path: root/ext/standard/var.c
diff options
context:
space:
mode:
Diffstat (limited to 'ext/standard/var.c')
-rw-r--r--ext/standard/var.c7
1 files changed, 5 insertions, 2 deletions
diff --git a/ext/standard/var.c b/ext/standard/var.c
index de9de3202f..ca0273c213 100644
--- a/ext/standard/var.c
+++ b/ext/standard/var.c
@@ -947,7 +947,8 @@ again:
zval *data;
zend_ulong index;
- ZVAL_COPY(&obj, struc);
+ Z_ADDREF_P(struc);
+ ZVAL_OBJ(&obj, Z_OBJ_P(struc));
if (php_var_serialize_call_magic_serialize(&retval, &obj) == FAILURE) {
if (!EG(exception)) {
smart_str_appendl(buf, "N;", 2);
@@ -1009,7 +1010,9 @@ again:
if (ce != PHP_IC_ENTRY && zend_hash_str_exists(&ce->function_table, "__sleep", sizeof("__sleep")-1)) {
zval retval, tmp;
- ZVAL_COPY(&tmp, struc);
+
+ Z_ADDREF_P(struc);
+ ZVAL_OBJ(&tmp, Z_OBJ_P(struc));
if (php_var_serialize_call_sleep(&retval, &tmp) == FAILURE) {
if (!EG(exception)) {