diff options
Diffstat (limited to 'ext/standard/var.c')
-rw-r--r-- | ext/standard/var.c | 6 |
1 files changed, 2 insertions, 4 deletions
diff --git a/ext/standard/var.c b/ext/standard/var.c index 5b4fd8fe54..4d47e67e2c 100644 --- a/ext/standard/var.c +++ b/ext/standard/var.c @@ -1001,8 +1001,7 @@ again: zval *data; zend_ulong index; - Z_ADDREF_P(struc); - ZVAL_OBJ(&obj, Z_OBJ_P(struc)); + ZVAL_OBJ_COPY(&obj, Z_OBJ_P(struc)); if (php_var_serialize_call_magic_serialize(&retval, &obj) == FAILURE) { if (!EG(exception)) { smart_str_appendl(buf, "N;", 2); @@ -1065,8 +1064,7 @@ again: if (ce != PHP_IC_ENTRY && zend_hash_str_exists(&ce->function_table, "__sleep", sizeof("__sleep")-1)) { zval retval, tmp; - Z_ADDREF_P(struc); - ZVAL_OBJ(&tmp, Z_OBJ_P(struc)); + ZVAL_OBJ_COPY(&tmp, Z_OBJ_P(struc)); if (php_var_serialize_call_sleep(&retval, &tmp) == FAILURE) { if (!EG(exception)) { |