diff options
Diffstat (limited to 'ext/standard/var.c')
-rw-r--r-- | ext/standard/var.c | 7 |
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)) { |