diff options
author | Dmitry Stogov <dmitry@php.net> | 2005-11-15 15:21:47 +0000 |
---|---|---|
committer | Dmitry Stogov <dmitry@php.net> | 2005-11-15 15:21:47 +0000 |
commit | 8bb39e7dba4afef51968cb42e091afa6a48b0015 (patch) | |
tree | f5713393d637a1ca6068d6dd6c2c2f9584bbfecc /Zend/zend_objects.c | |
parent | dffc74c54eb40957dae56f89ebd6ca4c625fedad (diff) | |
download | php-git-8bb39e7dba4afef51968cb42e091afa6a48b0015.tar.gz |
Allow recursive calls to __get/__set for different properties
Diffstat (limited to 'Zend/zend_objects.c')
-rw-r--r-- | Zend/zend_objects.c | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/Zend/zend_objects.c b/Zend/zend_objects.c index c9299c4efb..a699442269 100644 --- a/Zend/zend_objects.c +++ b/Zend/zend_objects.c @@ -88,6 +88,10 @@ ZEND_API void zend_objects_destroy_object(zend_object *object, zend_object_handl ZEND_API void zend_objects_free_object_storage(zend_object *object TSRMLS_DC) { + if (object->guards) { + zend_hash_destroy(object->guards); + FREE_HASHTABLE(object->guards); + } zend_hash_destroy(object->properties); FREE_HASHTABLE(object->properties); efree(object); @@ -101,10 +105,7 @@ ZEND_API zend_object_value zend_objects_new(zend_object **object, zend_class_ent (*object)->ce = class_type; retval.handle = zend_objects_store_put(*object, (zend_objects_store_dtor_t) zend_objects_destroy_object, (zend_objects_free_object_storage_t) zend_objects_free_object_storage, NULL TSRMLS_CC); retval.handlers = &std_object_handlers; - (*object)->in_get = 0; - (*object)->in_set = 0; - (*object)->in_unset = 0; - (*object)->in_isset = 0; + (*object)->guards = NULL; return retval; } |