diff options
Diffstat (limited to 'Zend/zend_variables.c')
-rw-r--r-- | Zend/zend_variables.c | 11 |
1 files changed, 7 insertions, 4 deletions
diff --git a/Zend/zend_variables.c b/Zend/zend_variables.c index f919fb8c85..6104358382 100644 --- a/Zend/zend_variables.c +++ b/Zend/zend_variables.c @@ -54,7 +54,7 @@ ZEND_API void _zval_dtor(zval *zvalue ZEND_FILE_LINE_DC) } break; case IS_OBJECT: - zvalue->value.obj.handlers.del_ref(zvalue->value.obj.handle); + zvalue->value.obj.handlers->del_ref(zvalue->value.obj.handle); break; case IS_RESOURCE: { TSRMLS_FETCH(); @@ -119,7 +119,11 @@ ZEND_API int _zval_copy_ctor(zval *zvalue ZEND_FILE_LINE_DC) } break; case IS_OBJECT: - zvalue->value.obj.handlers.add_ref(zvalue->value.obj.handle); +#if 0 + zvalue->value.obj = zvalue->value.obj.handlers->clone_obj(zvalue->value.obj.handle); +#else + zvalue->value.obj.handlers->add_ref(zvalue->value.obj.handle); +#endif break; } return SUCCESS; @@ -152,8 +156,7 @@ ZEND_API int zval_persist(zval *zvalue TSRMLS_DC) zend_hash_apply(zvalue->value.ht, (apply_func_t) zval_persist TSRMLS_CC); break; case IS_OBJECT: - persist_alloc(zvalue->value.obj.properties); - zend_hash_apply(zvalue->value.obj.properties, (apply_func_t) zval_persist TSRMLS_CC); + return FAILURE; /* objects cannot be persisted */ break; } return SUCCESS; |